最近在寫NetCore項目採用的是NetCore的Cookie認證。結果偶然發現QQ瀏覽器登陸很差用。這裏先須要瞭解一下set-cookie中的SameSite屬性瀏覽器
致使緣由cookie
首先Fiddler 4查看一下兩次請求測試
第一次Post進行登陸 返回302重定向到站點首頁並帶回Cookie (一切正常)spa
可是看第二條http請求,返回又是302 ,查看相關信息,請求時Cookie 根本沒帶入.net
到此基本知道整個登陸失敗是由於Cookie沒有帶入請求頭。code
解決方案:blog
通過一系列測試後發現是由於咱們響應的Cookie裏面有samesite屬性 影響了QQ瀏覽器兼容Cookie帶入(也許是個瀏覽器Bug吧)get
好下面說如何解決此問題在NetCore認證中咱們如何取消掉此屬性,it
其實不光咱們的認證Cookie 其餘Cookie也同樣 只要咱們在NetCore中指定了Cooke的CookieOptions,不設置SameSite的狀況下默認爲SameSiteMode.Lax 此時在QQ瀏覽器兼容模式 你的Cookie就不會帶入請求io
context.Response.Cookies.Append("test-SameSite", "123456", new CookieOptions() { SameSite=SameSiteMode.None });