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