ASP.NET Web.Sitemap-一个角色未显示在导航菜单中,而其他角色未显示在导航菜单中
我正在开发一个ASP.NET C#应用程序,它为应用程序中的不同用户级别定义了三个角色:“用户”、“经理”和“管理员”。我已经完成了大部分用户和管理员的工作,并且刚刚在Manager部分添加了一个页面。但是“经理”部分没有显示在我的TreeView导航菜单中。我在上读了一篇优秀的博客文章,我似乎遵守了他定义的所有“规则”,但它仍然不起作用 这是我的Web.sitemap文件:ASP.NET Web.Sitemap-一个角色未显示在导航菜单中,而其他角色未显示在导航菜单中,asp.net,asp.net-roles,sitemapprovider,Asp.net,Asp.net Roles,Sitemapprovider,我正在开发一个ASP.NET C#应用程序,它为应用程序中的不同用户级别定义了三个角色:“用户”、“经理”和“管理员”。我已经完成了大部分用户和管理员的工作,并且刚刚在Manager部分添加了一个页面。但是“经理”部分没有显示在我的TreeView导航菜单中。我在上读了一篇优秀的博客文章,我似乎遵守了他定义的所有“规则”,但它仍然不起作用 这是我的Web.sitemap文件: <?xml version="1.0" encoding="utf-8" ?> <siteMap xm
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
<siteMapNode url="#">
<siteMapNode url="~/User/Default.aspx" roles="Admin,Manager,User" title="Home" />
<siteMapNode url="~/User/About.aspx" roles="Admin,Manager,User" title="About" description="About this application" />
<siteMapNode roles="Admin,Manager,User" title="User Functions">
<siteMapNode url="~/User/CreateNewIPR.aspx" roles="Admin,Manager,User" title="Create New IPR" description="Enter a new IPR" />
<siteMapNode url="~/User/ListIPRs.aspx" roles="Admin,Manager,User" title="List IPRs" description="List all the IPRs you have entered" />
<siteMapNode url="~/User/ViewIPRDetails.aspx" roles="Admin,Manager,User" title="View IPR Details" description="View details of an IPR" />
</siteMapNode>
<siteMapNode roles="Admin" title="Admin Functions">
<siteMapNode url="~/Admin/ManageApprovalLevels.aspx" roles="Admin" title="Manage Approval Levels"
description="Allows administrators to add/edit approval levels" />
<siteMapNode url="~/Admin/ManageUsers.aspx" roles="Admin" title="Manage Users & Roles" description="Allows administrators to add users to roles and add new users to the system" />
<siteMapNode url="~/Admin/ManageApprovers.aspx" roles="Admin" title="Manage Approvers" description="Allows administrators to manage approvers" />
</siteMapNode>
<siteMapNode roles="Manager" title="Manager Functions">
<siteMapNode url="~/Manager/ApprovalsList.aspx" roles="Manager" title="Approve Purchase Requests" description="Allows managers to approve purchase requests" />
</siteMapNode>
</siteMapNode>
</siteMap>
以下是“管理器”文件夹中的Web.config:
最后,我在根Web.config中定义了站点地图提供程序:
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider" description="Default SiteMap provider" type="System.Web.XmlSiteMapProvider" siteMapFile="IPRTracker.sitemap" securityTrimmingEnabled="true" />
</providers>
</siteMap>
下面是我得到的屏幕截图(请注意,缺少Manager部分):
事实证明,这是一件相当简单的事情,尽管我并不完全理解它。在Web.sitemap中,显示以下行:
<siteMapNode roles="Manager" title="Manager Functions">
需要更改为:
<siteMapNode roles="Admin,Manager" title="Manager Functions">
即使我测试的用户ID是所有三个角色(管理员、经理和用户)的成员
<siteMapNode roles="Admin,Manager" title="Manager Functions">