Asp.net core 如何在Razor页面中禁用CSRF防伪功能
我想在TestServer下运行时禁用CSRF检查,这样在运行自动测试时就不必读取和发送令牌 由于大量有用的魔法潜入ASP.NET内核,我被卡住了 模板代码中没有明显添加此项的内容,但在此服务期间查看调试器中的筛选器。AddMvcoptions=>options.filters调用不显示全局筛选器 此代码也不起作用Asp.net core 如何在Razor页面中禁用CSRF防伪功能,asp.net-core,Asp.net Core,我想在TestServer下运行时禁用CSRF检查,这样在运行自动测试时就不必读取和发送令牌 由于大量有用的魔法潜入ASP.NET内核,我被卡住了 模板代码中没有明显添加此项的内容,但在此服务期间查看调试器中的筛选器。AddMvcoptions=>options.filters调用不显示全局筛选器 此代码也不起作用 mvcOptions.Filters.Add<IgnoreAntiforgeryTokenAttribute>(0); 和Antiforgery.Options没有禁用
mvcOptions.Filters.Add<IgnoreAntiforgeryTokenAttribute>(0);
和Antiforgery.Options没有禁用选项
我该怎么做?试试这个:
services.AddMvc().AddRazorPagesOptions(o =>
{
o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});
您也可以在PageModel中忽略它:
[IgnoreAntiforgeryToken(Order = 1001)]
public class IndexModel : PageModel
关于订单参数:内置的[ValidateAntiforgeryToken]
decorator的订单为1000,因此设置
[IgnoreAntiforgeryToken]到1001将覆盖它