c# – 如何在ASP.Net中隐藏基于角色的菜单项
发布时间:2020-12-15 21:43:16 所属栏目:百科 来源:网络整理
导读:如果用户不在Admin角色中,我试图隐藏菜单项中的项目.这是我在我的站点主机后面的代码中使用的代码,但代码没有隐藏我试图隐藏它的管理员页面.这是母版页的 HTML标记: asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
如果用户不在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文章引用了很多可以帮助您入门的“如何”文章. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |