1 public IServiceProvider ConfigureServices(IServiceCollection services) 2 { 3 services.AddControllersWithViews(options => 4 { 5 options.Filters.Add(new AbpAutoValidateAntiforgeryTokenAttribute()); 6 }); 7 }
在创建代码中使用了AbpAutoValidateAntiforgeryTokenAttribute这个过滤头属性,会对
string method = context.HttpContext.Request.Method;
if (string.Equals("GET", method, StringComparison.OrdinalIgnoreCase) || string.Equals("HEAD", method, StringComparison.OrdinalIgnoreCase) || string.Equals("TRACE", method, StringComparison.OrdinalIgnoreCase) || string.Equals("OPTIONS", method, StringComparison.OrdinalIgnoreCase))
这些请求以外的方式进行网络请求验证,是因为使用了微软的ASP.NET Core Web程序中使用Antiforgery防御CSRF,(跨站点请求伪造(又名CSRF或XSRF)是最常见的攻击之一)
该功能是可选项,以下方式是避免此功能。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { //不适用ABP自身的X-XSRF-TOKEN验证,如果去掉,会导致前端请求只有get请求能通过,或者携带令牌可通过,其他的方式验证失败。 app.UseAbp(options => { options.UseAbpRequestLocalization = false; }); }
标签:OrdinalIgnoreCase,string,StringComparison,Equals,aspnetboilerplate,abp,访问,option From: https://www.cnblogs.com/CnnBlog/p/18099092