2010-07-07 3 views
1

Итак, я это выше моего контроллера: [Авторизоваться (Роли = «Администратор»)]ASP.Net/MVC Авторизоваться Vs Аутентифицировать

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

ответ

1

Возможно, вы не понимаете вас четко, но аутентификация и авторизация всегда собираются вместе. Говорят, какой механизм используется для аутентификации пользователя (формы, окна и т. Д.) И во-вторых, роли или пользователи могут видеть содержимое. ..

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

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

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() 
    { 
     ... 
    } 
+0

То, что я имею в виду, если они не вошли в систему, я хочу, чтобы отправить их на страницу входа, но если у них нет правильной роли, я хочу отправить их в другое место. – Jhorra

+0

Итак, код, который я написал, должен быть в порядке. –

+0

Спасибо за помощь. – Jhorra

Смежные вопросы