卡尔威特的教育全书,天降之物12,无线城市网
最近在写netcore项目采用的是netcore的cookie认证。结果偶然发现qq浏览器登录不好用。这里先需要了解一下set-cookie中的samesite属性
导致原因
首先fiddler 4查看一下两次请求
第一次post进行登录 返回302重定向到站点首页并带回cookie (一切正常)
但是看第二条http请求,返回又是302 ,查看相关信息,请求时cookie 根本没带入
到此基本知道整个登录失败是因为cookie没有带入请求头。
解决方案:
经过一系列测试后发现是因为我们响应的cookie里面有samesite属性 影响了qq浏览器兼容cookie带入(也许是个浏览器bug吧)
好下面说如何解决此问题在netcore认证中我们如何取消掉此属性,
其实不光我们的认证cookie 其他cookie也一样 只要我们在netcore中指定了cooke的cookieoptions,不设置samesite的情况下默认为samesitemode.lax 此时在qq浏览器兼容模式 你的cookie就不会带入请求
context.response.cookies.append("test-samesite", "123456", new cookieoptions() { samesite=samesitemode.none });
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论