我陷入了一个奇怪的问题,环境:我正在使用 Asp.net 状态服务器来存储会话,我的会话超时是 20 分钟我的情况是,我在每次页面重新加载时都从 Java 脚本更新 ASP.NET_SessionId cookie像这样
var n = 'ASP.NET_SessionId' // cookie name
var v = app.cookies.get(n) // cookie value
var d = '.abc.com' // base domain to create domain level cookie
var e = 0.1666666666668 // 4 hrs
app.cookies.set(n, v, e, d) // my method to update cookies
现在的问题是,当我在 IE 中的多个选项卡(如 8 个或更多选项卡)中打开该页面时,当我单击刷新所有选项卡时结束(右键单击任何选项卡将显示此选项)然后连续执行此操作将在 Session Expired Message 中结束.
在会话跟踪中,我发现我的会话 ID 已更改。当我删除了更新会话 ID 的这种逻辑时,它工作正常。它只发生在 IE 中,而不是 Crome 或 firefox。
我的问题是为什么会更改会话 ID?JS 在更新其时间时是否锁定该 cookie,并且在相同情况下其他选项卡请求更新导致崩溃并且 IE 将新会话 ID 发送到服务器。?