您可以覆盖
OnAuthorization
方法:
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
// Call the AuthorizeCore which should return true or false
if (!this.AuthorizeCore(filterContext.HttpContext))
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary()
{
{ "controller", "home" },
{ "action", "about" },
{ "id", "foo" },
});
}
}
就viewdata和tempdata而言:
filterContext.Controller.ViewData
和
filterContext.Controller.TempData
应该在里面工作
授权的
方法。最后,如果你想使用
UrlHelper
(在这种情况下,没有必要,因为
RedirectToRouteResult
更好)您可以实例化它:
var urlHelper = new UrlHelper(filterContext.RequestContext);