[英]How to Hide Menu Items Based on Role in ASP.Net
如果用户不在Admin角色中,我试图隐藏菜单项中的项目。 这是我在我的站点主机后面的代码中使用的代码,但代码没有隐藏我试图隐藏它的管理员页面。 这是母版页的HTML标记:
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Admin/Authors.aspx" Text="Admin" />
<asp:MenuItem NavigateUrl="~/Users/KCA_Summary.aspx" Text="KCA Summary" />
<asp:MenuItem NavigateUrl="~/Users/Details.aspx" Text="KCA Details" />
</Items>
</asp:Menu>
这是背后的代码:
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not Roles.IsUserInRole("Admin") Then
Dim menuItems As MenuItemCollection = NavigationMenu.Items
Dim adminItem As New MenuItem()
For Each menuItem As MenuItem In menuItems
If menuItem.Text = "Admin" Then
adminItem = menuItem
End If
Next
menuItems.Remove(adminItem)
End If
End Sub
可能最简单的方法是使用配置了SecurityTrimmingEnabled
= true的SiteMapProvider 。
链接的MSDN文章引用了很多可以帮助您入门的“如何”文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.