Почему onAuthorization выполняется перед аутентификацией?

Я пытаюсь выполнить некоторую настраиваемую авторизацию, поэтому я создал контроллер, перекрывающий метод OnAuthorization . Я также применил к этому контроллеру атрибут Authorize . Возникает вопрос, почему метод OnAuthorization вызывается ПЕРЕД процессом аутентификации основных форм?

Я хотел бы авторизовать пользователя после его аутентификации. Я что-то упустил?

Вот код:

[Authorize]
    public class AuthorizationController : Controller
    {
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);

            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }

            List<string> allowedControllers = new List<string>() { "SecurityController" };
            List<string> allowedActions = new List<string>() { "Index" };

            string controllerName = filterContext.Controller.GetType().Name;
            string actionName = filterContext.ActionDescriptor.ActionName;

            if (!allowedControllers.Contains(controllerName)
            || !allowedActions.Contains(actionName))
            {
                filterContext.Result = View("UnauthorizedAccess");
            }
        }
    }

Контроллер, с которым я тестировал, выглядит примерно так:

public class SecurityController : AuthorizationController
{

    public ActionResult Index()
    {
        return View();
    }

    public ActionResult AnotherIndex()
    {
        return View();
    }
}
14
задан misha 20 February 2012 в 18:03
поделиться