Как удалить элементы из меню на основе разрешений пользователя на главной странице asp.net - PullRequest
2 голосов
/ 03 ноября 2011
 //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 Ответ

3 голосов
/ 03 ноября 2011

Я не уверен в специфике работы вашей логики, но так же, как вы используете метод Add для коллекции Items вашего меню, вы можете использовать Remove или RemoveAt способы убрать пункты меню.

Итак, что-то вроде

if( Some Condition that means the user shouldn't have the "Message" privilege)
{
    NavigationMenu.Items.RemoveAt(messageMenuItemIndex);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...