管理asp.net网站菜单中的角色

时间:2011-07-25 23:52:58

标签: c# asp.net roles

我想知道是否可以在te网站菜单中配置角色以防止看到某些aspx,也可以在用户登录后获得c#(代码隐藏)中的当前角色。感谢

1 个答案:

答案 0 :(得分:5)

如果您使用的是asp.net角色提供程序和asp.net菜单控件,则可以使用web.sitemap文件来控制基于角色的菜单链接显示,如下所示。

<siteMapNode url="/Test/Default.aspx" roles="Admin" title="Test" description="">

否则,您可以使用loginview控件根据以下角色显示不同的链接。

<asp:LoginView runat="server">
    <AnonymousTemplate>
       Menu Link1
    </AnonymousTemplate>
    <RoleGroups>
        <asp:RoleGroup Roles="Admin">
            <ContentTemplate>
                Menu Link2
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>

如果您没有使用角色提供程序并且在会话中或某个地方存储该信息,则可以在aspx文件中使用类似的内容。

<% if (Session["admin"].ToString() == "Admin") { %>
  Link1
<% } else { %>
  Link2
<%} %>

您可以将登录用户的当前角色设为

string[] roleNames = Roles.GetRolesForUser();