QQ瀏覽器兼容模式下Cookie失效 致使的NetCore Cookie認證失效

最近在寫NetCore項目採用的是NetCore的Cookie認證。結果偶然發現QQ瀏覽器登陸很差用。這裏先須要瞭解一下set-cookie中的SameSite屬性瀏覽器

 

 

 致使緣由cookie

 首先Fiddler 4查看一下兩次請求測試

 

 

 

第一次Post進行登陸 返回302重定向到站點首頁並帶回Cookie (一切正常)spa

 

可是看第二條http請求,返回又是302 ,查看相關信息,請求時Cookie 根本沒帶入.net

 

 

 

到此基本知道整個登陸失敗是由於Cookie沒有帶入請求頭。code

 

 

解決方案:blog

  • NetCore Cookie認證下如何解決

通過一系列測試後發現是由於咱們響應的Cookie裏面有samesite屬性 影響了QQ瀏覽器兼容Cookie帶入(也許是個瀏覽器Bug吧)get

好下面說如何解決此問題在NetCore認證中咱們如何取消掉此屬性,it

  • 自定義Cookie如何解決

其實不光咱們的認證Cookie  其餘Cookie也同樣 只要咱們在NetCore中指定了Cooke的CookieOptions,不設置SameSite的狀況下默認爲SameSiteMode.Lax 此時在QQ瀏覽器兼容模式 你的Cookie就不會帶入請求io

 context.Response.Cookies.Append("test-SameSite", "123456", new CookieOptions()
                {
                    SameSite=SameSiteMode.None
                });
相關文章
相關標籤/搜索