2009-05-24 3 views
0

Я хочу перенаправить посетителей на страницу входа с добавленными параметрами (на основе действия, которое они выполняют) после авторизации.ASP.NET MVC: Пользовательские параметры для страницы входа после авторизации

Это пример того, что я хотел бы сделать:

ASP.NET MVC - CustomeAuthorize filter action using an external website for loggin in the user

Однако, так как это пользовательский фильтр, я не знаю, как и если я могу указать роли, как в обычном фильтр авторизации. Я бы хотел что-то вроде:

[CustomAuthorization(Roles="Admins")] 

Спасибо!

ответ

1

Вы могли наследовать от класса AuthorizeAttribute и переопределить OnAuthorize метод как это:

public override void OnAuthorization(AuthorizationContext filterContext) 
{ 
    base.OnAuthorization(filterContext); 
    if (!HttpContext.Current.User.IsAuthenticated) 
    { 
     filterContext.Result = new RedirectResult("target"); 

    } 
} 

Затем вы можете использовать этот пользовательский фильтр так же, как AuthorizeAttribute.

0

Вы пытались загрузить источник ASP.Net MVC и взглянуть на код AuthorizeAttribute (в AutorizeAttribute.cs)?

Возможно, имеет смысл вывести вашу CustomAutorization из существующего AuthorizeAttribute - проверьте это и посмотрите, можете ли вы применить свою требуемую функциональность.

0

Как насчет использования только Request.Form в пользовательском классе авторизации. Это всего лишь POST-вызов? Не делайте это сложнее, чем есть на самом деле.