Перехват исключений атрибутов прав доступа ASP.Net MVC - PullRequest
2 голосов
/ 10 января 2010

Я бы хотел защитить свои действия контроллера MVC, используя ...

[PrincipalPermission(SecurityAction.Demand, Role="Administrator")]

Однако, если пользователь не в этой роли, то SecurityException «Запрос на разрешение участника не выполнен». выбрасывается кодом.

Кажется, что нет способа обработать эту ошибку, даже ошибка [Обрабатывать] не поймает ее.

Мне нужен способ перехвата исключений безопасности и перенаправления пользователя на мою страницу входа (или маршрут).

Или, как-нибудь написать собственный фильтр действий, который я могу добавить к любому методу, например

[MustBeAnAdministrator]

... который будет проверять, находится ли пользователь в правильной роли, и перенаправлять их. Однако я не могу заставить работать перенаправление в фильтре действий.

Спасибо.

1 Ответ

1 голос
/ 22 апреля 2010

В нашем MVC-проекте мы используем

<Authorize(Roles:="Administrators")>

Функция, предоставляемая MembershipProvider - которую мы адаптировали к нашим условиям. Если пользователь не вошел в систему, он будет перенаправлен на экран входа в систему.

...