如题,假设第一个登录的为A第二个为B 登录后的用户信息B就覆盖了前一个用户A的session信息,导致在第一个用户A打开的窗口中,保存信息的时候获取用户信息是第二个用户A的信息,造成 本来是A用户要保存A的信息,却保存成B用户的了,造成很多麻烦,我都称之为串账号/用户了;大家有没有解决方案,比如 登录的信息不冲突;或者A页面保存的时候发现不是A的用户信息了转到重新登录页面等这样的解决方法。
Session[KEY_CACHEUSER] = value;
对于 同个key 的session 又是同个电脑同个浏览器的会话,session的性质就是可以跨网页访问吧?覆盖应该是必然的,只是这种必然对于保存用户信息来说会出现麻烦。
session里是按散列对象存储在服务端的,无论你用那台机器登陆只要你的Session[“key”]一样,都会出现你所说的情况。解决办法不是很明显吗,就是保证 不同用户或者你想要存储不同Session的key不一样,问题不就解决了。还有,不适用于分布式。
思路很好,那样就需要知道页面是哪个用户请求的便于获取用户信息,假设请求页面都带有用户信息的唯一标识,那么怎么样简单的实现每个页面都带有对应的唯一标识呢,因为是已经完成的项目,不想一个一个页面改,工作量太大了。在此谢谢了。
@yj4018no1: 这不是思路好不好的问题,我不了解你的问题实际情况,也只能给你解决问题一般思路。具体实现,你最好去看源代码,了解实现逻辑,再去修改。不过最好要遵守“开放封闭原则”!
可能要设置web.config吧。
<configuration> <system.web> <sessionState cookieless="true" regenerateExpiredSessionId="true" /> </system.web> </configuration>
这不能解决这个问题吧!
寫cookie 是不是寫的一樣哦。
关注...
Session 里面保存一个 字典<User, ShoppingInfo>之类的,不就解决问题了? 要什么解决方案!
不错的方法...
你没有明白我的问题吧?
@yj4018no1: 我觉得正常应该不会有这种情况,您能将关键代码贴出来吗?