繁体   English   中英

.Net Core 中的 .AspNetCore.Antiforgery.xxxxxxx cookie 是什么?

[英]What is .AspNetCore.Antiforgery.xxxxxxx cookie in .Net Core?

我试图在 .Net Core 中使用 ValidateAntiForgeryToken 但我得到 .AspNetCore.Antiforgery.xxxxxxx cookie 丢失。

这个 .AspNetCore.Antiforgery.xxxxxxx cookie 是什么?

ASP.NET Core 查找此 cookie 以查找 X-CSRF 令牌。

ValidateAntiForgeryToken是一个动作过滤器,可应用于单个动作、控制器或应用程序的全局。 除非请求包含有效的防伪令牌,否则对应用此过滤器的操作发出的请求将被阻止。

通常,ASP.NET Core 可能会在 cookie 或标头中查找令牌。 所以你可能会遇到这样的情况

  • 标头用于传递令牌而不是 cookie
  • 带有令牌的 cookie 的名称与 ASP.NET Core 预期的名称不同。

默认情况下,ASP.NET Core 将生成并期望以 DefaultCookiePrefix(“.AspNetCore.Antiforgery.”)开头的唯一 cookie 名称。

这可以使用防伪选项CookieName覆盖:

services.AddAntiforgery(options => options.CookieName = "X-CSRF-TOKEN-COOKIENAME");

对于.Net Core 2.0.0 或更高版本会有以下变化

参考: https : //docs.microsoft.com/en-us/dotnet/api/Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions?view=aspnetcore-2.0

对于该用途如下:

services.AddAntiforgery(options => options.Cookie.Name = "X-CSRF-TOKEN-COOKIENAME");

如果谈论标题,可以通过以下方式指定名称:

services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");

调查:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM