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 });
開発者ウィンドウから、値が適切に設定されていることを確認できます
リクエストヘッダーで同じ値が渡されています