Я пытаюсь скрыть элемент из элементов меню, если пользователь не находится в роли администратора. Вот код, который я использую в коде в моем хозяине сайта, но код не скрывает страницу администратора, в которой я пытаюсь ее скрыть. Вот HTML разметка для главной страницы:Как скрыть элементы меню на основе роли в ASP.Net
<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
Возможно, вы находитесь в роли администратора :). Этот код работает для меня. – aquinas
Я удалился из роли администратора, чтобы проверить его, но все равно не работает. – moe
Если вы используете членство в Asp.net, вы можете использовать элемент управления LoginView – dansasu11