同一浏览器,登录两个用户,第二个用户会把第一个用户的信息覆盖掉(使用session获取用户信息),该如何解决呢?腾讯企业邮箱就不存在这个问题,不知如何实现的。

解决方案 »

  1.   

    被替换的原因就在一存入session的key是同一个;
    如果不想被覆盖,只能换成不一样的,可以设置为用户名(username)+sessionkey使每一个用户的sessionkey都不一样
      

  2.   

    原因是浏览器保存了cookie。如果你在换用户登陆之前先清一下cookie那么就不会替换。然而这么做并卵,你同样之前的用户也登陆不上,但不同处在于你之前的用户并没有被注销。哈哈哈。关于腾讯邮箱猜测:他的sessionid生成肯定有一定的规则,这样就保证了不会重叠。我们之所以会重叠只是后台服务器的sessionid没有写好。
      

  3.   

    要想实现同时登陆两个用户:有一个可行的方法,在session里面存储一个username、password的list。
    这样当用户第一次登陆,ussername,password匹配的时候,就在这个list中添加一份。登陆后,访问系统其他页面时,需要多传:当前登陆对象的username、password。然后比对list中是否有匹配的username和password。
      

  4.   

    这只是比较简单的实现,考虑到安全,password不应当放在客户端。所以最好弄个随机唯一id匹配password。后话不表。
      

  5.   


    你登陆后返回的每个页面都需要返回当前登陆用户的username以及password。
      

  6.   


    你登陆后返回的每个页面都需要返回当前登陆用户的username以及password。
    以便下次页面访问时,作为参数传出。懂没?
      

  7.   


    你登陆后返回的每个页面都需要返回当前登陆用户的username以及password。
    是啊,是当前用户啊。当前用户。。但是你的list里存了多个用户
      

  8.   

    看qq邮箱的链接:http://set1.mail.qq.com/cgi-bin/frame_html?t=frame_html&sid=i6GKcW
    会带一个sid,就是你的账户识别码,qq邮箱靠这个来区分当前用户,所以可以一个浏览器存在多个用户。qq邮箱的功能相对来说算是很少的,复杂的系统这样就不行了,容易出问题。
    你可以开2个邮箱试试,换个识别码,邮箱的账户就换了。
      

  9.   

    页面相关的变量   原本存在session中的    都补要存在session中了  都放在application中去吧 但这样也太坑爹了
      

  10.   

    在后台将登陆信息放入session时,创建不同的key。session.setAttribute("用户名+key", user);