ASP.Net/MVC Авторизация против аутентификации - PullRequest
1 голос
/ 07 июля 2010

Итак, я установил это выше моего контроллера: [Авторизовать (роли = "Администратор")]

Проблема в том, не вошли ли они в систему или не имеют нужной роли, он перенаправляет их на страницу входа. Есть ли способ заставить его обрабатывать авторизацию и аутентифицироваться по-разному?

1 Ответ

1 голос
/ 07 июля 2010

Я не совсем понимаю вас, но аутентификация и авторизация всегда идут вместе. Один говорит, какой механизм используется для аутентификации пользователя (формы, окна и т. Д.), А второй - какие роли или пользователи могут видеть контент..

Поскольку метод проверки подлинности установлен в вашей веб-конфигурации, он является фиксированным, и единственное, что вы можете использовать для защиты методов контроллера - это поставить эти атрибуты.

Также, если вы хотитеиспользуйте его по-разному, например, для перенаправления на другую страницу вы можете использовать следующий код:

public class RedirectAuthorizeAttribute : AuthorizeAttribute
{
    public string RedirectUrl { get; set; }

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        filterContext.Result = new RedirectResult(RedirectUrl);
    }
}

и затем поместить его на свой метод контроллера следующим образом:

    [RedirectAuthorize(Roles = "MyRole", RedirectUrl = "SomeUrl")]
    public ActionResult SomeAction()
    {
       ...
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...