Firefox (3.6.18) 在多个选项卡中打开应用程序时会共享会话。我想防止这种情况发生,在每个打开的选项卡上都应该有一个新会话,这样会话中的数据状态就不会被破坏。
任何在这方面提供的帮助都将受到高度赞赏。
答案1
Firefox 甚至您提到的那个版本都没有问题。我认为您对浏览器如何跟踪会话 cookie 的理解有点不完整。浏览器始终会向服务器发送请求,其中包含发出它们的服务器域的 cookie。这与发出 cookie 的浏览器选项卡无关。
如果您不希望会话 cookie 在各个选项卡之间使用,您可以使用页面特定标识符来区分服务器向客户端呈现的每个页面。当相应的选项卡发回请求时,它还必须发送页面特定标识符,以便服务器可以区分跨选项卡发出的请求。如果用户将带有此页面特定标识符的链接从一个选项卡复制到另一个选项卡,这将对您没有帮助。
如果您想继续使用特定于页面的标识符,那么您所要做的就是解析传入的请求参数以获取页面标识符。如果不存在,那么您可以使用 PRNG 生成一个,并在页面中发送包含此页面标识符的响应(例如,作为表单中的隐藏字段或 URL,但绝不会作为 cookie)。
注意:如果您正在寻找浏览器特定功能,Firefox 3 和 4 没有 IE9 中的“新会话”功能,该功能允许用户跨浏览器窗口创建新会话。此外,如果服务器使用持久性 cookie 来跟踪用户,IE9 的“新会话”功能似乎不起作用。
答案2
你不能,
您可以重写 URL 并在每个 URL 后附加 jSessionId 并手动跟踪它。但这不是做事的方法