隐藏在asp.net的web.sitemap授权的菜单项
-
20-08-2019 - |
题
我修剪的功能与安全性的web.sitemap,但是我需要基于一个角色有没有访问规则在web.config页面隐藏的菜单项。
即我有一个用来查看现有的广告活动,以及增加新的活动一个活动页面,但我希望“新广告系列”菜单项被隐藏匿名用户。 我尝试添加角色名称的角色由于web.sitemap属性,但是这没有任何影响。
我敢肯定,必须有一个快速的方法来做到这一点,而无需修改站点地图提供商这是我的下一个停靠港。
解决方案
如果这仅仅是为匿名用户的特殊情况,您可以创建第二个Sitemap。
创建一个新的文件WebAnon.sitemap。结果 在web.config创建一个新的站点地图提供商
<add name="anonProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="WebAnon.sitemap" securityTrimmingEnabled="true"/>
设置的SiteMapDataSource的 SiteMapProvider 属性为“anonProvider”在后面的代码,如果它的匿名用户。
其他提示
在一个roles
的<siteMapNode />
属性是一个“允许”列表,而不是拒绝。创建/修改web.config中,以允许认证用户和匿名拒绝一个相应的<location />
元件; e.g。
<location path="campaigns.aspx">
<system.web>
<authorization>
<allow users="*" />
<deny users="?" />
</authorization>
</system.web>
</location>
顺便说一句,如果您使用的是Windows主体和角色,你组成员的任何更改之前,请勿注销,然后重新打开生效。
不隶属于 StackOverflow