众所周知Session cookie被广泛用来做浏览器用户身份校验。在近期的项目测试中就遇到一个相关的问题,发现在两不同的IE8窗口里面并以两个不同用户身份分别登录后,前面登录的用户页面会在第二个用户登录以后刷新成第二个用户信息页面,但是在IE6浏览器下测试是好的,并未发现类似问题。
查了整个项目中session设置的地方,并未发现问题。最后分析是session被浏览器共享了,于是网上查了IE8和IE7的区别,发现相比IE7, IE8的Session管理有很大变化,这是Web开发者需要注意的:
IE7中,同一个窗口(IE 进程)共享一个session。
IE8中,所有打开的IE窗口(IE 进程)共享一个session。除非,用户通过菜单 File > New session 打开新窗口,或者使用命令行参数 iexplore.exe -nomerge 来打开IE。 另外,当所有IE窗口被关闭后,session 结束。
这个问题的关键是,cookie在不同的IE进程间是否共享,有些COOKIE是完全共享的,有的作用域只能局限于单个进程。因为cookie中保存着你的sessionid它被服务器用来决定是否应该生成的新的session。
Session默认情况下是以cookie内存储的sessionId作为识别标志,而cookie在浏览器之间独立的。所以如果是同一个浏览器不管开多少个窗口,都只有一个Session。
解决在IE8浏览器中测试时session共享问题:
1、在IE8的快捷方式的目标栏中添加-nomerge,再打开IE时就不会共享同一个session了。
2、使用命令行参数 iexplore.exe -nomerge 来打开IE。
分享到:
相关推荐
标题中的"IE8串session"问题是指在使用Internet Explorer 8(简称IE8)时,浏览器的不同窗口或标签页之间可能会共享同一个Session,导致用户在不同网页上的登录状态、个性化设置等信息相互影响,这在多用户环境或者...
【Cookie与Session机制】在Web开发中,会话跟踪是必不可少的技术,用于区分不同用户的操作。常见的会话跟踪手段有Cookie和Session。Cookie是通过在客户端存储信息来识别用户身份,而Session则是在服务器端存储信息来...
总的来说,针对IE浏览器中iframe跨域导致Session丢失的问题,关键在于理解浏览器对跨域Cookie的处理方式,特别是IE的独特限制。通过设置P3P头,可以通知浏览器允许iframe内的页面使用和共享Session,从而修复登录和...
1. **Cookie被禁用或清除**:大多数情况下,Session ID是通过Cookie传递的。如果用户禁用了Cookie,或者清除了浏览器缓存,服务器就无法识别用户,从而导致Session丢失。 2. **Session超时**:服务器通常会设置一个...
尽管这可能增加网络传输的数据量,但在IFrame环境下,这是必要的,因为没有Cookie,SessionID就无法在主页面与IFrame之间传递。 3. **P3P头的添加:** 对于IE浏览器,需要在服务器端添加P3P头,例如`Response.Add...
- 浏览器兼容性:不同浏览器对Session的支持可能存在差异,如IE6和IE8在新开窗口时默认是否合并Session。开发时需要测试确保在各种浏览器下行为一致。 6. Session的替代方案: 除了Session,还可以使用Cookie...
通常,同一个IE客户端在不关闭浏览器的情况下,Session ID是不变的。但是,某些情况如页面重载、浏览器设置或安全策略可能导致Session ID更改。理解Session ID的工作原理对于解决如`Session_Start`和`Session_End`...
在探讨如何解决iframe跨域与session失效的问题之前,我们需要了解几个重要的概念:什么是跨域,什么是session以及cookie。 首先,跨域问题通常出现在Web应用中,尤其是在使用iframe嵌入第三方网站内容时。在Web技术...
- **存储位置**:会话Cookie通常存储在内存中,而有明确过期时间的Cookie保存在硬盘上,不同浏览器进程间可共享。 - **安全性**:由于Cookie存储在客户端,容易被第三方获取,存在安全风险,例如cookie欺骗,可能...
- **兼容性**:尽管大多数现代浏览器支持Cookie,但在某些设备(如老式手机)或特定设置(如禁用了Cookie功能)的情况下,Cookie可能无法正常工作。 ##### 2.3 记录用户访问次数 在Java中,Cookie通常被封装为`...
- **cookie**:通常,每个浏览器进程或窗口有独立的cookie存储,但某些浏览器如IE8、Chrome默认会共享相同域的cookie。 总之,session和cookie各有优势和局限,开发者应根据实际需求选择合适的技术。在关注用户...
之所以在有后台鉴权时firefox和360浏览器无法正常运行,是因为FireFox、chrome、360浏览器等支持HTML5的浏览器不会再文件上传时自动带入session信息和cookie,不共享session。所以解决方案如下: 方法一:url中紧跟...
- **浏览器间不共享**:不同浏览器各自保存独立的Cookie,例如IE的Cookie不会被Firefox读取。 3. **Cookie与HTTP头** - **Cookie请求头**:客户端通过`Cookie`头发送Cookie到服务器,多个Cookie以分号分隔。 - *...
在现代Web开发中,浏览器提供了多种方式来存储用户数据,其中最常见的是Cookie、localStorage和sessionStorage。这些机制使得开发者可以在客户端本地存储信息,从而提高应用性能,减少对服务器的依赖,同时也为用户...
- **PHP在IE下的iframe跨域session丢失问题**:由于浏览器同源策略,跨域会导致会话丢失,可以通过设置 P3P 头部或使用共享域名的 cookie 来解决。 - **Failed to write session data** 错误:这通常是因为临时...
本项目提供了一个完整的、经过测试的解决方案,确保在IE6到IE8、Firefox 3.5、Opera以及Google Chrome等主要浏览器中,Iframe的内容能自动调整其高度以适应内部页面的大小。 1. **Iframe高度自适应原理** - 通常,...
之前上传了一个通过Flash实现多文件...经过反复研究学习,之所以firefox和360浏览器无法正常运行,是因为FireFox、chrome、360浏览器等支持HTML5的浏览器不会再文件上传时自动带入session信息和cookie,不共享session。
默认情况下,Cookie数据在浏览器关闭后会被清除。但通过`setMaxAge(int seconds)`方法,可以设置Cookie的生命周期,使其在指定秒数后过期或持久化存储在用户硬盘上。 在Tomcat 8之前的版本,Cookie不支持直接存储...
一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2、功能:在一次会话的范围内的多次请求间,共享数据 3、方式: 客户端会话技术:Cookie 服务器端会话技术:Session 二、Cookie 1、概念...
这个问题主要涉及到会话管理、分布式环境下的 session 共享以及跨域登录策略。 首先,我们需要理解Web应用中的会话(Session)概念。当用户成功登录后,服务器通常会创建一个会话,并将用户的登录信息存储在服务器...