如何根据asp.net母版页中的用户权限从菜单中删除项目

时间:2011-11-03 13:15:52

标签: c# asp.net menu

 //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多个组合。所以对于每个组合我正在执行代码以向菜单添加项目,如何添加所有菜单项并删除用户没有权限的项目。如果菜单项是 “组,用户,消息,支持”然后如果用户权限是“创建用户”,那么我应该从菜单中删除组和消息,我该怎么做。

1 个答案:

答案 0 :(得分:3)

我不确定您的逻辑是如何工作的,但与您使用Add方法对菜单Items集合的方法相同,您可以使用{ {3}}或Remove方法可以取走菜单项。

所以,像

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