调研了一下,IE8居然是session共享的。(其实是共享cookies中的sessionId),也就是说,你在本机用IE8登录上淘宝之后,你无论打开多少个IE(用Ctrl+n也好,用IE process也好),你都能自动登录哦。
|
新窗口打开方式 |
IE6 |
IE8 |
|
CTRL+ N
|
共享 session |
共享 session |
|
winodw.open |
共享 session |
共享 session |
|
链接 |
共享 session |
共享 session |
|
打开 IE |
新建 session |
共享 session |
|
创建标签页 |
无 |
共享 session |
换句话就是说,如果我打开了A画面,往session里面存了key为a,value为XXX的参数
接着我打开另一个IE8,再打开A画面,往session里面存了key为a,value为FFFFF的参数
那这样的话,XXX就被覆盖掉了哦
怎么办,最直接的方法让客户换用IE7,然后禁止掉CTRL+N。
或者还有个解决方法,让客户在IE8上选择文件,打开新会话。。。。。。。。。。。。。。。。。。。。
想来想去,比较靠谱的还是以下的方法:
尝试把session内存储的内容结构化.比如原来是
session = {a:1,b:2}
现在存为
session = {userid1:{a:1,b:2,time:n},userid2:{a:1,b:2,time:n}}
每次登陆不再是完全更新session而是更新session内的userid节点(session过期的部分功能给自己处理了)
然后每次生成页面的时候,需要在页面上带上userid信息,所有的页面都import一个common页面即可.现在每次获得请求,都要从页面先获取userid,然后根据userid从session取 出对于的信息,然后根据这些信息进行后续操作。
后来听人介绍,貌似有个系统实现了对session的区分。在IE8下能保证同时只有一个人登录:
http://web230531.host89.chinajsp.net/login.ered?reqCode=init
啊哈哈,我分析了他的http请求,发现原来秘密在内存cookie中有如下的玩意:
我推测他的做法肯定是保存上一个帐户和密码,然后强比
浙公网安备 33010602011771号