Я пытаюсь понять, как скрыть или показать кнопки и другие элементы на веб-странице Razor/MVC.
Я знаю, что могу "защищать" действия с помощью атрибута Authorize, но я хотел бы показать или скрыть определенные кнопки на веб-странице на основе роли/группы Active Directory, в которой находится пользователь.
попробуй это
if (User.IsInRole("Domain\\Group"))
{
<li >
@Html.ActionLink("Only Admin", "ActionOnlyAdmin", "Admin", routeValues: new { @id = id })
</li>
}
и контроллер
[Authorize(Roles = "Domain\\Group")]
public ActionResult ActionOnlyAdmin(){}
Способ, которым я это делаю, - добавить метод к модели, например CanUserAccess().
Затем в представлении мне нравится:
@if (Model.CanUserAccess(HttpContext.Current.User.Identity.Name.Split('|')[0].ToString()))
{
// display buttons or partial view containing buttons
}
Затем в модели вы можете сделать все, что вам нужно, чтобы вернуть true или false в CanUserAccess.