我已经使用我的 asp.net MVC 表单实现了 AnitforgeryToken,并且还在我的登录过程中添加了该属性,但是当检查失败时,我希望重定向到我的欺诈操作而不是异常页面。这在属性中可能吗?
thanks
如果你不想放[HandleError]
所有具有以下属性的操作[ValidateAntiForgeryToken]
,您可以将自定义过滤器添加到全局过滤器中:
在 Global.asax 中 under Application_Start()
:
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
进而:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new AntiForgeryTokenFilter());
}
}
AntiForgeryToken Filter.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;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)