一个浏览器同时登录多个用户session互相冲突如何解决

xyuan_07 2015-08-04 05:10:55
同一浏览器,登录两个用户,第二个用户会把第一个用户的信息覆盖掉(使用session获取用户信息),该如何解决呢?腾讯企业邮箱就不存在这个问题,不知如何实现的。
...全文
46801 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Abin0406 2017-07-20
  • 打赏
  • 举报
回复 2
在后台将登陆信息放入session时,创建不同的key。session.setAttribute("用户名+key", user);
vswen5 2017-07-20
  • 打赏
  • 举报
回复 2
将前面登录的同个用户挤下线
m18762618689 2017-07-20
  • 打赏
  • 举报
回复
我也遇到了,求解决办法
bcsflilong 2016-10-25
  • 打赏
  • 举报
回复
页面相关的变量 原本存在session中的 都补要存在session中了 都放在application中去吧 但这样也太坑爹了
baidu_36509669 2016-10-25
  • 打赏
  • 举报
回复
'w我的做法是 二次登陆 不再允许了 嘻嘻
xyuan_07 2015-08-05
  • 打赏
  • 举报
回复
引用 2 楼 u011385186 的回复:
原因是浏览器保存了cookie。如果你在换用户登陆之前先清一下cookie那么就不会替换。然而这么做并卵,你同样之前的用户也登陆不上,但不同处在于你之前的用户并没有被注销。哈哈哈。。。。。。。关于腾讯邮箱猜测:他的sessionid生成肯定有一定的规则,这样就保证了不会重叠。我们之所以会重叠只是后台服务器的sessionid没有写好。
还是·不知道咋办。。。然并卵。。。呜呜
中华雪碧 2015-08-05
  • 打赏
  • 举报
回复
看qq邮箱的链接:http://set1.mail.qq.com/cgi-bin/frame_html?t=frame_html&sid=i6GKcW 会带一个sid,就是你的账户识别码,qq邮箱靠这个来区分当前用户,所以可以一个浏览器存在多个用户。qq邮箱的功能相对来说算是很少的,复杂的系统这样就不行了,容易出问题。 你可以开2个邮箱试试,换个识别码,邮箱的账户就换了。
Golden_Dog 2015-08-05
  • 打赏
  • 举报
回复
自己理,不想多说。
xyuan_07 2015-08-05
  • 打赏
  • 举报
回复
引用 7 楼 u011385186 的回复:
[quote=引用 6 楼 xyuan_07 的回复:] [quote=引用 4 楼 u011385186 的回复:] 要想实现同时登陆两个用户:有一个可行的方法,在session里面存储一个username、password的list。 这样当用户第一次登陆,ussername,password匹配的时候,就在这个list中添加一份。 登陆后,访问系统其他页面时,需要多传:当前登陆对象的username、password。然后比对list中是否有匹配的username和password。
刷新时,用户跟页面的联系呢?哪个页面是哪个用户?[/quote] 你登陆后返回的每个页面都需要返回当前登陆用户的username以及password。[/quote] 是啊,是当前用户啊。当前用户。。但是你的list里存了多个用户
Golden_Dog 2015-08-05
  • 打赏
  • 举报
回复
引用 7 楼 u011385186 的回复:
[quote=引用 6 楼 xyuan_07 的回复:] [quote=引用 4 楼 u011385186 的回复:] 要想实现同时登陆两个用户:有一个可行的方法,在session里面存储一个username、password的list。 这样当用户第一次登陆,ussername,password匹配的时候,就在这个list中添加一份。 登陆后,访问系统其他页面时,需要多传:当前登陆对象的username、password。然后比对list中是否有匹配的username和password。
刷新时,用户跟页面的联系呢?哪个页面是哪个用户?[/quote] 你登陆后返回的每个页面都需要返回当前登陆用户的username以及password。[/quote] 以便下次页面访问时,作为参数传出。懂没?
Golden_Dog 2015-08-05
  • 打赏
  • 举报
回复
引用 6 楼 xyuan_07 的回复:
[quote=引用 4 楼 u011385186 的回复:] 要想实现同时登陆两个用户:有一个可行的方法,在session里面存储一个username、password的list。 这样当用户第一次登陆,ussername,password匹配的时候,就在这个list中添加一份。 登陆后,访问系统其他页面时,需要多传:当前登陆对象的username、password。然后比对list中是否有匹配的username和password。
刷新时,用户跟页面的联系呢?哪个页面是哪个用户?[/quote] 你登陆后返回的每个页面都需要返回当前登陆用户的username以及password。
xyuan_07 2015-08-05
  • 打赏
  • 举报
回复
引用 4 楼 u011385186 的回复:
要想实现同时登陆两个用户:有一个可行的方法,在session里面存储一个username、password的list。 这样当用户第一次登陆,ussername,password匹配的时候,就在这个list中添加一份。 登陆后,访问系统其他页面时,需要多传:当前登陆对象的username、password。然后比对list中是否有匹配的username和password。
刷新时,用户跟页面的联系呢?哪个页面是哪个用户?
Golden_Dog 2015-08-05
  • 打赏
  • 举报
回复
这只是比较简单的实现,考虑到安全,password不应当放在客户端。所以最好弄个随机唯一id匹配password。后话不表。
Golden_Dog 2015-08-05
  • 打赏
  • 举报
回复
要想实现同时登陆两个用户:有一个可行的方法,在session里面存储一个username、password的list。 这样当用户第一次登陆,ussername,password匹配的时候,就在这个list中添加一份。 登陆后,访问系统其他页面时,需要多传:当前登陆对象的username、password。然后比对list中是否有匹配的username和password。
Golden_Dog 2015-08-04
  • 打赏
  • 举报
回复
原因是浏览器保存了cookie。如果你在换用户登陆之前先清一下cookie那么就不会替换。然而这么做并卵,你同样之前的用户也登陆不上,但不同处在于你之前的用户并没有被注销。哈哈哈。。。。。。。关于腾讯邮箱猜测:他的sessionid生成肯定有一定的规则,这样就保证了不会重叠。我们之所以会重叠只是后台服务器的sessionid没有写好。
customer_yuan 2015-08-04
  • 打赏
  • 举报
回复
被替换的原因就在一存入session的key是同一个; 如果不想被覆盖,只能换成不一样的,可以设置为用户名(username)+sessionkey使每一个用户的sessionkey都不一样

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧