异常 RedirectToAction 上的 asp.net MVC antiforgerytoken

2024-01-17

我已经使用我的 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(使用前将#替换为@)

异常 RedirectToAction 上的 asp.net MVC antiforgerytoken 的相关文章

随机推荐