【问题标题】:How to remove items from menu based on user permissions in asp.net master page如何根据 asp.net 母版页中的用户权限从菜单中删除项目
【发布时间】:2011-12-21 04:25:14
【问题描述】:
 //Create user, create group
            else if ((PermissionList.Any(item => item.Equals("Create group"))) && (PermissionList.Any(item => item.Equals("Create user"))) && (PermissionList.Any(item => item.Equals("Create message"))))
            {
 NavigationMenu.Items.Add(new MenuItem
                {
                    Text = "Users",
                    NavigateUrl = "~/Users.aspx"
                });
                NavigationMenu.Items.Add(new MenuItem
                {
                    Text = Groups",
                    NavigateUrl = "~/Groups.aspx"
                });
            }


           <asp:Menu ID="NavigationMenu" runat="server" RenderingMode="Table" CssClass="menu"
                    EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                    <Items>
                    </Items>
                </asp:Menu>
            </div>

我正在根据用户权限向菜单添加项目,这里由于我有很多权限组合,我必须做很多条件,它是 20 多个组合。所以对于每个组合我正在执行代码以将项目添加到菜单中,我如何添加所有菜单项并删除用户没有权限的菜单项。例如,如果菜单项是 “组,用户,消息,支持”然后如果用户权限是“创建用户”,那么我应该从菜单中删除组和消息,我该怎么做。

【问题讨论】:

标签: c# asp.net menu


【解决方案1】:

我不确定你的逻辑是如何工作的,但就像你对菜单的Items 集合使用Add 方法一样,你可以使用Remove 或@ 987654322@ 移除菜单项的方法。

所以,像

if( Some Condition that means the user shouldn't have the "Message" privilege)
{
    NavigationMenu.Items.RemoveAt(messageMenuItemIndex);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-02
    • 2014-07-02
    • 2016-05-01
    • 2011-06-11
    • 1970-01-01
    • 2018-12-27
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多