如何确保会话ID在打开同一网站的新浏览器窗口时不会过期

本文关键字:网站 浏览器 窗口 过期 确保 何确保 会话 ID | 更新日期: 2023-09-27 18:00:28

我有一个ASP.NET网站。

情况如下:

  • 我打开网站并登录。

  • 我在IE中打开了同一网站的另一个窗口。

  • 当我这样做时,它会将我带到会话到期时显示的页面。

所以,你能告诉我如何确保当我们在另一个浏览器窗口中打开网站时,会话ID不会过期吗?

谢谢!

如何确保会话ID在打开同一网站的新浏览器窗口时不会过期

会话不会过期,因为您打开了一个新窗口;新窗口不能有用于存储会话id的cookie。大多数情况下,这些cookie是暂时的或基于"会话"的cookie。

会话cookie可能在浏览器窗口之间共享,也可能不共享,具体取决于浏览器和打开新窗口的方式。例如,在IE 9中,使用Javascript、Ctrl+N或Ctrl+T启动的新窗口将共享会话cookie。但是,通过进入文件/新会话启动的新窗口将不会共享会话cookie。

你也不会看到不同浏览器之间共享的cookie(例如IE和Firefox)。

为了给Michael的出色回应添加一个更简单的答案,简短的答案是"你不能直接做到这一点"。

但你可以做的是在你的应用程序中实现跟踪,这样你就可以随时知道用户的最后一次操作是什么,无论他们参加什么会话,都可以强制将他们保留在你指定的工作流程中。

然而,要实现这一点,您必须基本上忽略会话变量(无论如何,这可能是一个好主意;)等,并实现一个不断跟踪用户行为、当前位置和任何其他相关信息的框架。这显然涉及到很多开销,但据我所知,这是确保某个用户在从不同浏览器、机器等登录时始终到达您希望他们到达的位置的唯一方法。