2009-11-07 122 views

回答

14

如果你不想把[HandleError]屬性上有[ValidateAntiForgeryToken]所有行動,你可以自定義過濾器添加到您的全局過濾器:

在Global.asax中Application_Start()

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 

然後:

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
     filters.Add(new AntiForgeryTokenFilter()); 
    } 
} 

AntiForgeryTokenFilter.cs:

public class AntiForgeryTokenFilter : FilterAttribute, IExceptionFilter 
{ 
    public void OnException(ExceptionContext filterContext) 
    { 
     if(filterContext.Exception.GetType() == typeof(HttpAntiForgeryException)) 
     { 
      filterContext.Result = new RedirectResult("/"); // whatever the url that you want to redirect to 
      filterContext.ExceptionHandled = true; 
     } 
    } 
} 
+0

評論爲什麼你失望投票。 – Dmitry 2013-03-15 17:57:01