Условная (основанная на авторизации) разметка в mvc3 - PullRequest
1 голос
/ 14 июля 2011

Я ищу способ условного отображения определенных наценок с помощью авторизации, а не только User.Identity.IsAuthenticated.

Поскольку я использую аутентификацию Windows с AD, я бы хотел иметь возможностьсделать что-то вроде атрибута авторизации прямо в разметке, например:

@[Authorize {Roles = @"domain\Admin"}]
<div> admin markup</div>

Я пытался использовать

@if(User.IsInRole(@"domain\Admin"))

, но это тоже не сработало.Может кто-нибудь дать мне указание на лучший способ сделать это?

1 Ответ

3 голосов
/ 14 июля 2011

Вы настроили RoleManager для поддержки ваших ролей AD? Обратите внимание, что это отдельно от аутентификации.

В web.config у вас должен быть элемент roleManager внутри system.web, который позволит вам настроить использование ролей AD. В частности, вам нужно будет включить менеджер (enabled="true") и создать / указать провайдера.

Обратите внимание, что первый подход (AuthorizeAttribute) может применяться только к контроллерам и методам, но не в вашей разметке. Второй подход (User.IsInRole()) должен работать для вас, хотя, как только все настроено правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...