代码之家  ›  专栏  ›  技术社区  ›  stucampbell

如何使两个浏览器窗口共享同一个“会话”?

  •  3
  • stucampbell  · 技术社区  · 16 年前

    我有一个应用程序需要打开一个新窗口(在同一个域中),以便用户可以查看报告,但在某些浏览器*上,新窗口不共享原始窗口的非持久cookie,这会导致用户必须重新登录。我能做些什么来阻止用户在新窗口中再次登录吗?

    *事实上,在IE7中它是零星的-有时新的Windows共享cookie,有时不共享。

    5 回复  |  直到 16 年前
        1
  •  1
  •   Mark Brackett Achilles Ram Nakirekanti    16 年前

    IE7似乎确实使用与IE6不同的算法生成了新的进程,并可能导致 session cookies .

    最可靠的解决方案可能是围绕它进行架构——要么使用无cookie会话,要么使用持久的cookie,要么只是序列化页面中需要的数据。

        2
  •  3
  •   Pseudo Masochist    16 年前

    我认为IE7与同一窗口中的选项卡以及从当前窗口生成的窗口共享了非持久性cookie(我不确定手动打开时是否相同,如“文件”->新建”或程序脚本打开时是否相同),但新实例没有。

    不管它们是如何打开的,火狐都会在所有窗口中共享它们。我一直认为这是事实,你必须使用持久的cookie,无cookie会话,或者开发一个单一的登录/售票机制来解决这个问题。

        3
  •  1
  •   Ray    16 年前

    我使用的是ASP.NET,它依赖于会话在浏览器窗口中共享的行为,而且它对我很有效。实际上,我使用它的原因与您在新窗口中显示报告的原因相同:)

        4
  •  0
  •   Oli    16 年前

    他们 应该 共享cookies。这是我过去的经验。一出戏我就编辑。

        5
  •  0
  •   user4903    16 年前

    它是否与您打开窗口的方式有关,例如-javascript与目标标记?