ASP.NET Core SameSite 设置引起 Cookie 在 QQ 浏览器中不起作用
最近在發布了基于 ASP.NET Core 實現的新版登錄頁面之后,陸陸續續地接到用戶反饋登錄時 Antiforgery Token 總是驗證失敗。
日志中記錄的對應錯誤是
今天在 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.net core 默認用的是 SameSiteMode.Strict?,改為?SameSiteMode.None 問題就解決了。
services.AddAntiforgery(options =>{
options.Cookie.Name = ".XXX.Antiforgery";
options.Cookie.SameSite = SameSiteMode.None;
});
原文地址:https://www.cnblogs.com/dudu/p/10959557.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結
以上是生活随笔為你收集整理的ASP.NET Core SameSite 设置引起 Cookie 在 QQ 浏览器中不起作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core 中的错误处理
- 下一篇: ASP.NET Core - 基于IHt