前几天,我们在开发工作流的过程中出现了一个比较奇怪的问题,原本看不到流程的人员,在登陆后却能够看到对应流程的待办任务,并且导致流程流向混乱!在调模式下调试程序发现(假设登陆两个用户)第二个登陆用户的信息覆盖了第一个登陆用户的信息,并且在IE8/IE10浏览器中也是这样的情况(打开不同的窗口登陆,然后刷新,显示的登陆用户的信息总是的二个用户的)不过火狐浏览器却没有这样的情况!问题就比较明确了,是IE seesion共享引起的问题!网上百度了一下,关于此问题的信息还是比较多的!下面是一段比较详尽的分析及问题的解决方案!

转自:http://blog.csdn.net/zwhfyy/article/details/8281241

在Web应用程序中浏览器很重要,Web程序依赖浏览器。微软之前的IE版本,如IE6、IE7, 如果同时打开两个窗口会产生两个会话,彼此互不影响。但在IE8、IE9中情况截然不同,IE8、IE9存在SESSION共享的问题,虽然可同时打开多 个窗口,但他们共用了一个会话。

Session共享给应用程序带来了很大的方便,但在带给用户方便的同时,也给应用程序带来了一定的风险。尤其是企业级的应用程序,一旦出现数据错误,可能带来严重的后果。
除了开发人员在应用程序开发过程中要注意并利用浏览器的这个特性外,测试人员和用户也应该了解此特性,通过人为控制浏览器的这一特性,使浏览器的这个特性更好的为我们服务。

当然,微软为我们提供了很好的解决办法,通过下列方法打开的窗口不会共用会话:
第一种: 
用户通过菜单 文件 > 新建会话(或File > New session)打开新窗口

第二种: 
使用命令行参数 iexplore.exe -nomerge 打开浏览器

第三种:
修改浏览器的快捷方式属性,在 C:\Program Files\Internet Explorer 文件夹下,通过iexplore.exe
新建一快捷方式至桌面,在桌面的快捷方式上点击右键选择属性,修改“目标”为 "C:\Program Files\Internet
Explorer\iexplore.exe" -nomerge 
通过此快捷方式启动的浏览器不会共享会话。

第一种和第三种比较容易接受而且易于使用,建议普通用户使用第一种(从不共享Session),只需要修改一次,操作简单。

测试人员在测试Web应用程序时,如果需要同时使用多个用户登录同一Web站点进行测试,那么必须修改此属性,否则数据经常会出现混乱。用户也是如此,如果需要同时在同一Web站点登录多个用户,同样必须修改此属性,以保证数据的准确。

IE的这一属性,应该写入用户手册的注意事项中。

http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Session-Tracking.html

http://www.iefans.net/ie7-ie8-session-cookie-gongxiang-qubie/

IE SEESION共享的问题的更多相关文章

  1. redis 存储session实现session共享

    nginx 作为代理 tomcat集群 redis存储共享session nginx采用轮询方式将动态请求反向代理给tomcat,tomcat通过加载相应jar包方式实现获得redis中共享的sess ...

  2. 基于Redis缓存的Session共享(附源码)

    基于Redis缓存的Session共享(附源码) 在上一篇文章中我们研究了Redis的安装及一些基本的缓存操作,今天我们就利用Redis缓存实现一个Session共享,基于.NET平台的Seesion ...

  3. Cookie与Seesion的作用

    1.什么是Cookie与Session? cookie:首次访问服务器,服务器返回cookie置浏览器,存到用户电脑.之后去访问同一服务器,浏览器会携带相应cookie判断是否是同一浏览器的访问,告知 ...

  4. 如何实现集群中的 session 共享存储?

    Session 是运行在一台服务器上的,所有的访问都会到达我们的唯一服务器上,这 样我们可以根据客户端传来的 sessionID,来获取 session,或在对应 Session 不 存在的情况下(s ...

  5. 浅析HTTP协议

    HTTP协议是什么 HTPP协议是一种网际层协议,HTTP协议是无状态的,HTTP协议对用户是透明的. 每一次HTTP请求都是一次事务,一个HTTP事务是由一条请求命令和一个响应结果组成的,HTTP通 ...

  6. redis总结问题

    简单回顾了redis,在这过程中 首先得了解redis是什么,redis的运用场景,redis支持哪些数据格式,redis如何操作数据,redis如何实现高可用 redis是什么: Redis 是一个 ...

  7. 性能优化系列四:Tomcat优化

    一.Tomcat工作原理 1. TCP的三次握手四次挥手 三次握手: 说明: 类比于A和B打电话: A对B说:你好,我是A,你能听到我说话吗? B对A说:嗯,我能听到你说话 A对B说:好,那我们开始聊 ...

  8. 面试题--CVTE

    2.HashMap和HashSet的实现原理,hashset 和hashMap区别 HashSet底层就是HashMap实现的, *HashMap* *HashSet* HashMap实现了Map接口 ...

  9. springboot序

    springboot序 1.写在前面 (1) 前段时间把文章分了下类(说的是专栏,谈不上),分了三类:springboot.springcloud.mpp数据库greenplum,后来给springc ...

随机推荐

  1. 解决RPM包相互依赖的有效方法

    出自:http://blog.csdn.net/kai27ks/article/details/7473683 前言:常用RPM的朋友们都知道,RPM简单易用,但是它的依赖关系是最头疼的!有时候比方说 ...

  2. c/c++多线程编程中最好不要加volatile

    来自https://www.zhihu.com/question/31459750 答主解释说:不能指望volatile能解决多线程竞争问题,除非所用的环境系统不可靠才会为了保险加上volatile, ...

  3. M2的来源很简单

     http://bbs.tianya.cn/post-develop-412703-1.shtml M2的来源很简单,一部分是外汇占款,这个是我们国家的缺陷,如果外汇不管制,其实是不会发生增长人民币的 ...

  4. 黄聪:利用OpenXml生成Word2007文档(转)

    原文:http://blog.csdn.net/francislaw/article/details/7568317 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一Op ...

  5. C4.5决策树算法概念学习

    数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息的过程. •分类和聚类 •分类(Classification)就是按照某种标准给对象贴标签,再根据标签来区分归类,类别数不变. • ...

  6. ADO.NET基础(增删改查)

    ADO.NET是一种数据访问技术,就是将C#和MSSQL连接起来的一个纽带.可以通过ADO.NET将内存中的临时数据写入到数据库中,也可以将数据库中的数据提取到内存中供程序调用. ADO.NET是所有 ...

  7. 将博客搬至51CTO

    为了统一博客文章,将文章搬至51cto个人博客

  8. viewpage的使用

    http://blog.csdn.net/loongggdroid/article/details/19970523

  9. 内联函数inline

    1:使用inline函数的时候,必须使函数体和inline说明结合一起,否则编译器将视他为普通函数处理: false: inline void Coord::setcoord(int a,int b) ...

  10. CAP原则(CAP定理)

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...