簡體   English   中英

如何在ASP.Net中隱藏基於角色的菜單項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM