Как заставить AuthorizeAttribute работать с локальной группой администраторов в приложении интрасети ASP.NET MVC 3? - PullRequest
6 голосов
/ 27 декабря 2011

В этом приложении для интрасети ASP.NET MVC 3 (созданном с использованием шаблона MVC 3 Приложение для интрасети ), где пользователи автоматически проходят аутентификацию в AD, я пытаюсь ограничить доступ к контроллеру для пользователей вместная Administrators группа.Чтобы добиться этого, я попытался применить AuthorizeAttribute примерно так:

[Authorize(Roles = "Administrators")]
public class ElmahController : Controller

Однако, хотя мой пользователь AD (приложение сообщает, что ожидаемый пользователь был аутентифицирован) находится в локальной сети *Группа 1008 *, я не могу получить доступ к контроллеру, когда применяется AuthorizeAttribute.Подходит только пустая страница.Что я делаю не так?

С другой стороны, я убедился, что указание моего конкретного пользователя работает:

[Authorize(Users = @"ad\arve")]
public class ElmahController : Controller

В этом случае я могу успешно получить ограниченную страницу.

РЕДАКТИРОВАТЬ: Я обнаружил, что квалификация группы с BUILTIN работала:

[Authorize(Roles = @"BUILTIN\Administrators")]

Хотя это окончательный способ ссылки на локальные группы через AuthorizeAttribute?

Ответы [ 2 ]

6 голосов
/ 27 декабря 2011

Следуйте моим инструкциям Как создать сайт интрасети с использованием ASP.NET MVC Вам необходимо использовать встроенный класс AspNetWindowsTokenRoleProvider, который использует группы Windows в качестве ролей

[Authorize(Roles = @"BUILTIN\Administrators")]

Будет работать, только если вы являетесь администратором на сервере IIS. Если вы развернете свое приложение на производственном сервере своей компании, вам нужно будет сделать локального администратора на производственном сервере.

0 голосов
/ 27 декабря 2011

Пользовательский атрибут авторизации AD можно разместить над каждым действием или контроллером.Я делал это раньше и сделал что-то очень похожее на ссылку ниже.Это работает, если вы используете аутентификацию на основе форм, а не Windows.

Авторизация Active Directory на основе групп

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