1

我正在尝试基于角色创建站点地图菜单,但是当我将所有角色添加到根菜单,然后将单个角色添加到各个菜单项时,我总是会在菜单中获得所有内容。

<?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,但我可以看到所有三个。

如何解决?

菜单显示如下:

第 1 页 | 第2页| 第3页

所以如果我只在 Role1 我应该看到:

第 1 页 |

4

3 回答 3

1

您是否将 securityTrimmingEnabled 设置为 true?

于 2012-05-23T07:46:29.653 回答
1

按照 4guysfromrolla 的站点地图菜单教程第 3 部分 -配置站点导航以使用安全修剪

可以使用以下模式通过 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>

关注文章了解详细信息。。

于 2012-05-23T07:54:39.923 回答
0

是的,它已启用。

<siteMap defaultProvider="WMSSiteMapProvider">
      <providers>
        <clear/>
        <add name="WMSSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="WMS.sitemap"/>
      </providers>
    </siteMap>
于 2012-05-23T09:50:10.207 回答