4
如果用戶不在管理員角色中,我試圖隱藏菜單項中的項。這裏是我在我的網站主人後面的代碼中使用的代碼,但代碼沒有隱藏管理頁面,我試圖隱藏它。下面是母版頁的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