1

我在 AutoValidateAntiforgeryTokenAttribute 遇到错误

错误:防伪令牌验证失败。验证提供的防伪令牌失败。cookie 令牌和请求令牌已交换。过滤器“Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.AutoValidateAntiforgeryTokenAuthorizationFilter”处的请求授权失败。

我在网上搜索过,StackOverflow 没有任何帮助。请让我知道我在这里犯了什么错误。

在启动.cs

       services.AddMvc(options =>
       {
            options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
       }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

       services.AddCors(options =>
       {
           options.AddPolicy("AllowAllOrigins",
               builder => { builder.AllowAnyOrigin(); });
       });

       services.AddAntiforgery(options =>
       {
           options.HeaderName = "X-XSRF-TOKEN";
           options.SuppressXFrameOptionsHeader = false;
       });

我正在设置cookie如下

 var tokens = _antiforgery.GetAndStoreTokens(_httpContextAccessor.HttpContext);

 Response.Cookies.Append("XSRF-TOKEN", tokens.CookieToken,
                new CookieOptions { HttpOnly = false });
            Response.Cookies.Append("X-CSRF-FORM-TOKEN", tokens.RequestToken,
                new CookieOptions { HttpOnly = false });

从开发人员窗口中,我可以看到值已正确设置

在此处输入图像描述

在请求标头中传递相同的值

在此处输入图像描述

4

0 回答 0