ASP.NET MVC:Пользовательские параметры для страницы входа в систему после авторизации

StackOverflow https://stackoverflow.com/questions/904322

Вопрос

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

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

ASP.NET MVC - действие фильтра CustomeAuthorize с использованием внешнего веб-сайта для входа в систему пользователя

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

[CustomAuthorization(Roles="Admins")]

Спасибо!

Это было полезно?

Решение

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

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

    }
}

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

Другие советы

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

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

Как насчет использования just Request.Форма в вашем пользовательском классе авторизации.В конце концов, это всего лишь ПОЧТОВЫЙ звонок?Не усложняйте задачу, чем она есть на самом деле.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top