IE SEESION共享的问题
前几天,我们在开发工作流的过程中出现了一个比较奇怪的问题,原本看不到流程的人员,在登陆后却能够看到对应流程的待办任务,并且导致流程流向混乱!在调模式下调试程序发现(假设登陆两个用户)第二个登陆用户的信息覆盖了第一个登陆用户的信息,并且在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共享的问题的更多相关文章
- redis 存储session实现session共享
nginx 作为代理 tomcat集群 redis存储共享session nginx采用轮询方式将动态请求反向代理给tomcat,tomcat通过加载相应jar包方式实现获得redis中共享的sess ...
- 基于Redis缓存的Session共享(附源码)
基于Redis缓存的Session共享(附源码) 在上一篇文章中我们研究了Redis的安装及一些基本的缓存操作,今天我们就利用Redis缓存实现一个Session共享,基于.NET平台的Seesion ...
- Cookie与Seesion的作用
1.什么是Cookie与Session? cookie:首次访问服务器,服务器返回cookie置浏览器,存到用户电脑.之后去访问同一服务器,浏览器会携带相应cookie判断是否是同一浏览器的访问,告知 ...
- 如何实现集群中的 session 共享存储?
Session 是运行在一台服务器上的,所有的访问都会到达我们的唯一服务器上,这 样我们可以根据客户端传来的 sessionID,来获取 session,或在对应 Session 不 存在的情况下(s ...
- 浅析HTTP协议
HTTP协议是什么 HTPP协议是一种网际层协议,HTTP协议是无状态的,HTTP协议对用户是透明的. 每一次HTTP请求都是一次事务,一个HTTP事务是由一条请求命令和一个响应结果组成的,HTTP通 ...
- redis总结问题
简单回顾了redis,在这过程中 首先得了解redis是什么,redis的运用场景,redis支持哪些数据格式,redis如何操作数据,redis如何实现高可用 redis是什么: Redis 是一个 ...
- 性能优化系列四:Tomcat优化
一.Tomcat工作原理 1. TCP的三次握手四次挥手 三次握手: 说明: 类比于A和B打电话: A对B说:你好,我是A,你能听到我说话吗? B对A说:嗯,我能听到你说话 A对B说:好,那我们开始聊 ...
- 面试题--CVTE
2.HashMap和HashSet的实现原理,hashset 和hashMap区别 HashSet底层就是HashMap实现的, *HashMap* *HashSet* HashMap实现了Map接口 ...
- springboot序
springboot序 1.写在前面 (1) 前段时间把文章分了下类(说的是专栏,谈不上),分了三类:springboot.springcloud.mpp数据库greenplum,后来给springc ...
随机推荐
- gcc链接参数--whole-archive的作用
// a.h extern void foo(); // a.cpp #include <stdio.h> void foo() { printf("foo\n"); ...
- 《黄聪:手机移动站SEO优化教程》3、如何禁止百度对PC网站进行自动转码
视频地址:http://v.youku.com/v_show/id_XNzE2OTM0NzU2.html
- NeHe OpenGL教程 第十一课:飘动的旗帜
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 资源文件assets和 res下面raw文件的使用不同点
在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些图片,音频或者文本信息,可以供我们在程序当中进行使用,不过他们两个也有不同点: asse ...
- 在eclipse中下载包含子模块(Submodules)的git项目
先将项目下载下来 , 这时由于是子项目的原因 , 下载的项目中不包含任何子项目 . 这时在eclipse的Git Repositories中 , 选中Submodules , 右键点击update即可 ...
- Django 之 下载文件
法I: views.py #encoding:utf-8 import os from django.core.servers.basehttp import FileWrapper from dja ...
- 2013 ACM 通化邀请赛 A. Tutor
A. Tutor Description Lilin was a student of Tonghua Normal University. She is studying at University ...
- sqoop安装
环境:Hadoop 2.3.0 sqoop 1.4.5 1.下载并解压sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz (解压完,名字会很长,可以根据需要自己修改下 ...
- V$SGA_RESIZE_OPS.STATUS = ERROR, and MMAN / auto-tuning stops.
Oracle Server - Standard Edition - Version: 10.2.0.3This problem can occur on any platform. SYMPTOMS ...
- QT5.3.2在ARM上的移植
ubuntu10.04 准备移植phonon,4.5移植失败.播放声音就出错...没办法.转移到QtMutimedia 安装交叉编译工具这里就不提了... 1.下载QT5.3.2:http://dow ...