前几天,我们在开发工作流的过程中出现了一个比较奇怪的问题,原本看不到流程的人员,在登陆后却能够看到对应流程的待办任务,并且导致流程流向混乱!在调模式下调试程序发现(假设登陆两个用户)第二个登陆用户的信息覆盖了第一个登陆用户的信息,并且在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. VoLTE、呼叫等待(保持)

    VoLTE 的出现是手机通话的革命,VoLTE带来更好通话质量,更快的接通时间,接近0掉线这些特点,还可以一边通话一边上网,一方面VoLTE需要运营商的支持,另外一方面也需要手机终端的支持. 什么手机 ...

  2. -all_load,-ObjC,-force_load三者的区别

    参考:https://developer.apple.com/library/mac/qa/qa1490/_index.html,http://www.cnblogs.com/YouXianMing/ ...

  3. Team Foundation Server

    概述 (通常记作“TFS”) 是一种为 Microsoft 产品提供 源代码管理. 数据收集. 报告和项目跟踪,而为协作 软件开发 的项目. 可作为独立的软件,或 Visual Studio Team ...

  4. OAF_架构MVC系列4 - Control的概述(概念)

    2014-06-18 Created By BaoXinjian

  5. NeHe OpenGL教程 第三十一课:加载模型

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. repo安装

    repo是使用python开发的一个用于多版本管理的工具,可以和git协作,简化git的多版本管理. repo安装: 1.新建~/bin,并将此目录包含在path变量中(如果已存在,且已在path变量 ...

  7. [ActionScript 3.0] 自定义顶级类

    为了结合FlashBuilder编译参数,达到发布项目时不编译trace代码方便,写一个顶级类: package { public function tracing(...args):void { C ...

  8. [ActionScript] AS3利用SWFObject与JS通信

    首先介绍SWFObject的用法: swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flash ...

  9. js中格式化时间字符串

    .net 程序员肯定有遇到过,将一个对象json序列化之后Date 字段 就会转化成 '/Date(1370770323740)/' 这种格式的数据,下面介绍一种在js中,关于时间格式的转换. < ...

  10. Delphi 在线程中如何使用TClientSocket组件并自动检测该组件

    在线程中如何使用TClientSocket组件并自动检测该组件的事件?我想在一个线程中动态创建一个TClientSocket组件,并要求该组件能够自动检测Socket事件(例如OnRead.OnErr ...