加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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文章引用了很多可以帮助您入门的“如何”文章.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读