首页 新闻 会员 周边

session 丢失问题

0
悬赏园豆:20 [已解决问题] 解决于 2021-06-28 09:17

两个相同架构的web项目,保存session的方法代码都是一样的,但是不知道为什么A项目web登录正常保存获取Session ,B项目登录频频丢失Session ,时好时坏
使用的是谷歌浏览器
A项目控制台:正常登录

B项目控制台:正常登录,但是登录成功之后跳转页面由于获取的session 为null 导致在过滤器被重定向

二者登录验证用户信息成功后都有保存用户信息到sessIon ,保存的方法一致,所有的引用一致,过滤器写法一致,相当于复制项目,只不过内容业务不一样而已

通过控制台只发现了请求结束后的cookies 信息不一样,前者的ASP.NET_SessionId是Request Cookies
后者的ASP.NET_SessionId 是Response Cookies

两个项目部署在不同的服务器上,不知道会不会跟环境有关系
还请大家提点赐教!! 谢谢
已有豆子全部奉上

AnonymousFlower的主页 AnonymousFlower | 初学一级 | 园豆:11
提问于:2021-06-18 18:19
< >
分享
最佳答案
0

建议把session存储到redis

收获园豆:20
智客工坊 | 小虾三级 |园豆:1855 | 2021-06-19 18:26
其他回答(3)
0

可能是和谷歌浏览器版本有关。1. 找个丢失session的谷歌浏览器 搜索 chrome://flags/
2.搜索框中搜索 SameSite by default cookies   
3.修改 值为disabled 重启浏览器 在登录试试 要是可以了 就是浏览器问题

___mouM | 园豆:96 (初学一级) | 2021-06-19 15:31
0

可以在Tomcat部署的时候,修改conf/context.xml,在<Context>标签里增加sessionCookieName="uniqueSessionName"

但是这个仅限部署在同一服务器、不同端口下的两个项目

代码羡 | 园豆:69 (初学一级) | 2021-06-22 11:24
0

问题已解决但是并不知道什么原因,我把项目框架.net framework 4.7.2 改成4.6.1版本重新编译发布之后就没有这个问题出现了

AnonymousFlower | 园豆:11 (初学一级) | 2021-06-23 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册