我修剪的功能与安全性的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主体和角色,你组成员的任何更改之前,请勿注销,然后重新打开生效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top