C# 如何为管理员和用户显示不同的菜单项
我正在尝试设置我的站点,其中所有链接都显示为管理员角色,有限数量的链接显示为用户角色 这是我的网站地图:C# 如何为管理员和用户显示不同的菜单项,c#,asp.net,xml,visual-studio,roles,C#,Asp.net,Xml,Visual Studio,Roles,我正在尝试设置我的站点,其中所有链接都显示为管理员角色,有限数量的链接显示为用户角色 这是我的网站地图: <?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode > <siteMapNode url="fake1.aspx" title="Exampl
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode >
<siteMapNode url="fake1.aspx" title="Example A" description="Example" roles="user">
<siteMapNode url="fake2.aspx" title="Example 1" description="Example" roles="user" />
<siteMapNode url="fake3.aspx" title="Example 2" description="Example" roles="user" />
<siteMapNode url="fake4.aspx" title="Example 3" description="Example" roles="user" />
</siteMapNode>
<siteMapNode url="fake5.aspx" title="Example B" description="Example" roles="user">
<siteMapNode url="fake6.aspx" title="Example 1" description="Example" roles="user" />
<siteMapNode url="fake7.aspx" title="Example 2" description="Example" roles="user" />
<siteMapNode url="fake8.aspx" title="Example 3" description="Example" roles="user" />
</siteMapNode>
<siteMapNode url="fake9.aspx" title="Example C" description="Example" roles="user">
<siteMapNode url="fake10.aspx" title="Example 1" description="Example" roles="user" />
<siteMapNode url="fake11.aspx" title="Example 2" description="Example" roles="user" />
<siteMapNode url="fake12.aspx" title="Example 3" description="Example" roles="user"/>
</siteMapNode>
<siteMapNode url="fake13.aspx" title="Example D" description="Example" roles="admin">
<siteMapNode url="fake14.aspx" title="Example 1" description="Example" roles="admin" />
<siteMapNode url="fake15.aspx" title="Example 2" description="Example" roles="admin" />
<siteMapNode url="fake16.aspx" title="Example 3" description="Example" roles="admin" />
</siteMapNode>
</siteMapNode>
</siteMap>
这是我的菜单服务器控件:
<div id="menuBar">
<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" StaticDisplayLevels="2"
Orientation="Horizontal" >
</asp:Menu>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
</div>
下面是我的角色截图:
从我一直在阅读的教程中,roles=”“应该负责每个角色的链接访问,但在我的网站上什么都没有发生。用户和管理员看到了同样的情况。我做错了什么?在显示与管理员相关的内容之前,请检查用户的角色是否正确:-
if (Membership.GetUser() != null && Page.User.IsInRole("admin"))
{
//User is an admin
}
我不是通过c#显示菜单,我可以使用c#隐藏或显示网站地图的部分内容吗?您可以根据角色交换数据源,或者在将其分配到菜单之前对其进行筛选