我正在尝试基于角色创建站点地图菜单,但是当我将所有角色添加到根菜单,然后将各个角色添加到单个菜单项时,我总是会在菜单中获取所有内容。
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="Menu" description="" roles="Role1;Role2;Role3">
<siteMapNode url="~/page1.aspx" title="" description="" roles="Role1;Role2;Role3">
</siteMapNode>
<siteMapNode url="~/page2.aspx" title="" description="" roles="Role2; Role3">
</siteMapNode>
<siteMapNode url="~/page3.aspx" title="" description="" roles="Role3">
</siteMapNode>
</siteMapNode>
</siteMap>
如上所述,角色1,2,3可以看到根菜单。 我是Role1的一部分,因此我只能被允许看到page1.aspx,但我可以看到这三个。
如何解决这个问题?
菜单显示如下:
Page1 |第2页第3页
所以如果我只在Role1中,我应该看到:
Page 1 |
答案 0 :(得分:1)
您是否将securityTrimmingEnabled设置为true?
答案 1 :(得分:1)
按照4guysfromrolla的站点地图菜单教程第3部分 - Configuring Site Navigation to Use Security Trimmings
进行操作可以使用以下模式通过Web.config文件配置站点导航设置:
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="Default SiteMap provider."
type="System.Web.XmlSiteMapProvider"
siteMapFile="siteMapFileName"
securityTrimmingEnabled="true" />
</providers>
</siteMap>
按照文章了解详细信息..
答案 2 :(得分:0)
是的,它已启用。
<siteMap defaultProvider="WMSSiteMapProvider">
<providers>
<clear/>
<add name="WMSSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="WMS.sitemap"/>
</providers>
</siteMap>