如何在Razor Pages中禁用CSRF反伪造

时间:2019-07-01 12:08:58

标签: asp.net-core

我想在TestServer下运行时禁用CSRF检查,因此在运行自动化测试时不必读取和发送令牌。

由于大量“有用的魔术”逐渐渗透到ASP.NET Core中,我被困住了。

模板代码中显然没有添加任何内容,但是在此services.AddMvc(options => options.Filters)调用期间查看调试器中的过滤器,则没有显示全局过滤器。

此代码也不起作用。

mvcOptions.Filters.Add<IgnoreAntiforgeryTokenAttribute>(0);

并且Antiforgery.Options没有禁用选项。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

尝试一下:

services.AddMvc().AddRazorPagesOptions(o =>
{
    o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});

您也可以在PageModel上忽略它:

[IgnoreAntiforgeryToken(Order = 1001)]
public class IndexModel : PageModel
  

关于Order参数:内置的[ValidateAntiforgeryToken]   装饰器的订单数为1000,因此设置   [IgnoreAntiforgeryToken]设置为1001将覆盖它。