这是概述
- 创建会员资格
- 创建角色
- 创建站点地图(修改为使用角色=“管理员”)
- 使用菜单智能标签中的新数据源创建菜单并将 web.sitemap 绑定到菜单
- 修改 web.config 以启用 securityTrimmingEnabled
它是这样工作的。如果我将角色分配给站点地图中的根节点,则菜单对于除分配给它的角色之外的所有其他角色都是正确隐藏的。
如果我在其中一个子菜单中使用角色,它就不起作用。有谁知道为什么?
网站地图
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode roles="*"> <--------------- Roles Works here
<siteMapNode title="Home" url="~/Default.aspx" roles="admin"></siteMapNode> <-------- But not here
<siteMapNode title="Videos" url="~/Tags.aspx" />
<siteMapNode title="Student" url="~/MemberList.aspx" roles="student"/>
<siteMapNode title="My Page" url="~/MyPage.aspx" />
<siteMapNode title="My Recent Views" url="~/RecentViews.aspx" />
<siteMapNode title="Upload a Video" url="~/Upload.aspx" />
<siteMapNode title="Administer Users" url="~/AdministerUsers.aspx" roles="admin">
<siteMapNode title="Creat user" url="createUser.aspx"></siteMapNode>
</siteMapNode>
</siteMapNode>
</siteMap>
web.config 文件(修改)
<siteMap enabled="true">
<providers>
<clear/>
<add siteMapFile="Web.sitemap" name="AspNetXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true"/>
</providers>
</siteMap>