0
사이트 맵에서 제공하는 메뉴 링크의 보안 트리밍에 문제가 있습니다. securityTrimmingEnabled="false"
을 설정하면 메뉴가 작동하지만 보안 조정이 수행되지 않습니다. securityTrimmingEnabled="true"
으로 설정하면 메뉴가 사라집니다. 이 문제를 어떻게 해결할 수 있습니까? web.config
에서메뉴 링크 보안 트리밍
, 내가 가진 :
Site.master
에서
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true" >
<providers>
<clear />
<add name="XmlSiteMapProvider"
description="Default SiteMap provider."
type="System.Web.XmlSiteMapProvider"
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>
, 내가 가진 :
<div class="clear hideSkiplink">
<asp:Menu ID="Menu1" runat="server" CssClass="menu" DataSourceID="SiteMapDataSource1">
</asp:Menu>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
</div>
Web.sitemap
에서, 내가 가진 :
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="***">
<siteMapNode url="" title="***">
<siteMapNode url="~/***.aspx" title="***" />
<siteMapNode url="~/***.aspx" title="***" />
<siteMapNode url="~/***.aspx" title="***" />
<siteMapNode url="~/***.aspx" title="***" />
</siteMapNode>
<siteMapNode url="" title="***">
<siteMapNode url="~/Account/***.aspx" title="***" />
<siteMapNode url="~/Account/***.aspx" title="***" />
<siteMapNode url="~/Account/***.aspx" title="***" />
<siteMapNode url="~/Account/***.aspx" title="***" />
</siteMapNode>
</siteMapNode>
</siteMap>
노드에서 허용 된 역할을 지정하지 않았습니다. 따라서 securityTrimmingEnabled를 사용하도록 설정하면 허용 된 역할을 수행하지 않습니다 (아무 것도 없으므로).) 그래서 항목이 표시되지 않습니다 (문서 http://msdn.microsoft.com/en-us/library/ms178428.aspx 참조) –
감사합니다 kevin. ive 무슨 말했는지. 이제 노드 중 일부는 다음과 같이 보입니다. 그러나 여전히 작동하지 않습니다. 게다가 일부 노드는 인증을 필요로하지 않습니다. 왜 내 전체 메뉴가 완전히 비어 있습니다 :( –
brsgrlr
securityTrimmingEnabled 해제 - 모든 항목이 기본적으로 표시됩니다. 모든 항목에 * 기본적으로 * 표시되지 않습니다 - 사용자가 허용 된 역할 중 하나에있는 경우에만 표시됩니다. 두 가지를 섞어서 사용할 수 없기 때문에 노드에 역할을 비워두면 전혀 표시되지 않습니다. –