1

AutoValidateAntiforgeryTokenAttribute で以下のエラーが発生しています

エラー: 偽造防止トークンの検証に失敗しました。提供された偽造防止トークンの検証に失敗しました。Cookie トークンとリクエスト トークンが交換されました。フィルター 'Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.AutoValidateAntiforgeryTokenAuthorizationFilter' での要求の承認に失敗しました。

オンラインで検索しましたが、StackOverflow は何も役に立ちませんでした。私がここでやっている間違いを教えてください。

startup.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;
       });

そして、私は以下のようにクッキーを設定しています

 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