Веб-страница ASP.Net MVC - скрытие кнопок на основе роли Active Directory

1

Я пытаюсь понять, как скрыть или показать кнопки и другие элементы на веб-странице Razor/MVC.

Я знаю, что могу "защищать" действия с помощью атрибута Authorize, но я хотел бы показать или скрыть определенные кнопки на веб-странице на основе роли/группы Active Directory, в которой находится пользователь.

Теги:
active-directory
asp.net-mvc-4

2 ответа

2

попробуй это

    if (User.IsInRole("Domain\\Group"))
    {
        <li >
     @Html.ActionLink("Only Admin", "ActionOnlyAdmin", "Admin", routeValues: new { @id =  id })
        </li>
    }

и контроллер

    [Authorize(Roles = "Domain\\Group")]
    public ActionResult ActionOnlyAdmin(){}
  • 0
    Мой AD memberOf для пользователя, с которым я тестирую, выглядит следующим образом: CN = Admin, CN = Users, DC = Mydomain, DC = LOCAL. Просто используя приведенный выше пример, я всегда получаю false.
  • 0
    я обновляю ответ, попробуйте с этим
0

Способ, которым я это делаю, - добавить метод к модели, например CanUserAccess().

Затем в представлении мне нравится:

@if (Model.CanUserAccess(HttpContext.Current.User.Identity.Name.Split('|')[0].ToString()))
{
  // display buttons or partial view containing buttons
}

Затем в модели вы можете сделать все, что вам нужно, чтобы вернуть true или false в CanUserAccess.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню