ASP.NET Core SameSiteの設定により、CookieはQQブラウザで機能しない

1426 ワード

最近発表されたASPベースのNET Coreが実装した新しいログインページの後、ユーザーからログインのフィードバックが相次いだ場合、Antiforgery Tokenは常に検証に失敗します.
ログに記録されている対応エラーは
Antiforgery token validation failed. The required antiforgery cookie "xxx.Antiforgery" is not present.

今日、QQブラウザでカーネルモードを「 IE ” , cookie , antiforgery cookie , cookie , ajax post , antiforgey cookie , ,  antiforgery cookie 。」に設定しました.
services.AddAntiforgery(options =>
{
    options.Cookie.Name = ".xxx.Antiforgery";
});

その後、園で博文QQブラウザの互換モードの下でCookieの失効によるASPを見つけた.NET Core Cookie認証が失効して、Cookieであることを知った.SameSiteが起こした災い.
antiforgery cookieのsamesite値を表示するとstrict、元asp.NetcoreのデフォルトはSameSiteModeです.Strict、SameSiteModeに変更.None問題は解決した.
services.AddAntiforgery(options =>
{
    options.Cookie.Name = ".XXX.Antiforgery";
    options.Cookie.SameSite = SameSiteMode.None;
});