AutoValidateAntiforgeryToken失败时的全局错误处理



我有这个ASP.Net核心web应用程序。我在Startup.cs中配置了一些自定义错误处理程序。在这里你可以看到:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseWhen(context => context.Request.Path.StartsWithSegments("/api"), app =>
{
app.UseStatusCodePagesWithReExecute("/api/error-{0}");
});
app.UseWhen(context => !context.Request.Path.StartsWithSegments("/api"), app =>
{
app.UseStatusCodePagesWithRedirects("/error-{0}");
});
//...
}

然后是一个上面有[AutoValidateAntiforgeryToken]的控制器

问题是,当AntiForgeryToken验证失败时,请求会得到状态代码400的响应,而我的自定义错误处理程序不起作用。如果我发送正确的AntiForgeryToken或只是删除[AutoValidateAntiforgeryToken]属性,那么自定义错误处理程序就可以正常工作。

有没有一种方法可以使用全局错误处理程序使[AutoValidateAntiforgeryToken]失败?

#SOLVED由于自定义错误处理程序本身的操作在同一个控制器内,所以出现了问题;因此,错误处理程序操作方法本身需要蚂蚁伪造令牌!通过在错误处理程序操作方法上添加CCD_ 7来解决。

最新更新