You can / should override HandleUnauthorizedRequest instead of OnAuthorization . The default implementation is used here:
protected virtual void HandleUnauthorizedRequest(AuthorizationContext filterContext) {
You cannot use Controller.RedirectToAction , but you can return a new RedirectToRouteResult .
So you can do:
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { // Returns HTTP 401 - see comment in HttpUnauthorizedResult.cs. filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary { { "action", "ActionName" }, { "controller", "ControllerName" } }); }
Craig Stuntz Mar 18 '10 at 19:45 2010-03-18 19:45
source share