分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

QQ浏览器兼容模式下Cookie失效 导致的NetCore Cookie认证失效

发布时间:2023-09-06 02:28责任编辑:苏小强关键词:浏览器Cookie

最近在写NetCore项目采用的是NetCore的Cookie认证。结果偶然发现QQ浏览器登录不好用。这里先需要了解一下set-cookie中的SameSite属性

 导致原因

 首先Fiddler 4查看一下两次请求

第一次Post进行登录 返回302重定向到站点首页并带回Cookie (一切正常)

但是看第二条http请求,返回又是302 ,查看相关信息,请求时Cookie 根本没带入

到此基本知道整个登录失败是因为Cookie没有带入请求头。

解决方案:

  • NetCore Cookie认证下如何解决

经过一系列测试后发现是因为我们响应的Cookie里面有samesite属性 影响了QQ浏览器兼容Cookie带入(也许是个浏览器Bug吧)

好下面说如何解决此问题在NetCore认证中我们如何取消掉此属性,

  • 自定义Cookie如何解决

其实不光我们的认证Cookie  其他Cookie也一样 只要我们在NetCore中指定了Cooke的CookieOptions,不设置SameSite的情况下默认为SameSiteMode.Lax 此时在QQ浏览器兼容模式 你的Cookie就不会带入请求

 context.Response.Cookies.Append("test-SameSite", "123456", new CookieOptions() ???????????????{ ???????????????????SameSite=SameSiteMode.None ???????????????});

QQ浏览器兼容模式下Cookie失效 导致的NetCore Cookie认证失效

原文地址:https://www.cnblogs.com/hts92/p/10192494.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved