gpt4 book ai didi

internet-explorer-8 - 如何在 Java EE 应用程序中以编程方式避免 IE8 提供的 session 共享?

转载 作者:行者123 更新时间:2023-12-04 12:50:00 25 4
gpt4 key购买 nike

为了使 Internet Explorer 8“更稳定”和“更快”,微软改变了浏览器的底层架构,并引入了一个名为“松散耦合 IE”(LCIE)的功能,该功能用于跨 TAB 和新的 session 共享。实例。

但是当有人试图用同一个应用程序同时做两件不同的事情时, session 共享可能是致命的,例如就像有人想一次预订一张去程票和一张回程票,那个时候他会预订两张他不打算订的相同的票。

可能的解决方案

  • 在创建新窗口而不是通过单击图标或 Ctrl+N 创建时,我们应该使用 File -> New Session;它不会发生。
  • 您可以在客户端 PC 上进行注册表更改 - 添加以下内容。

    [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]


  • “TabProcGrowth" = dword : 00000000



    将禁用“松散耦合 IE8”;然后 IE8 可以作为以前版本的 IE 工作。
  • 使用 iexplore.exe -nomerge 运行 MSIE将禁用“松散耦合 IE8”;然后 IE8 可以作为以前版本的 IE 工作。

  • 但是我将如何以编程方式做到这一点?

    你看,我的问题不是我的应用程序。如果我登录一个用户,它工作正常,但是当我通过来自 IE8 浏览器不同实例的不同用户登录多个用户时,我后来的 session 数据覆盖了前一个,这是因为两个 IE 浏览器都使用相同的 session 标识。这是由于 IE8 的 session 共享而发生的。一个应用程序只维护了一个 session ,但是我登录了多少用户。事实上,我想保持每个用户的 session 。

    就像我在一个浏览器中登录 Gmail 一样。如果我只是在另一个浏览器上输入 Gmail。它正在自动登录。我不希望在我的应用程序中使用它。我应该在执行独立操作时让另一个用户登录。

    我的应用程序使用 Struts、Spring、Hibernate 和 JBoss 应用程序服务器。

    现在告诉我应该如何进行?

    最佳答案

    我认为您上面描述的问题可以在所有浏览器上复制,并且可以更好地解决服务器端。我知道的一种方法是创建一个对话 id 并使用状态机管理对话的生命周期。

    这允许您(和您的用户)拥有一个可以同时进行多个对话的 session ,这在实践中经常发生,至少在内部企业应用程序中。世界是一个比业务流程模型展示的更困惑的地方。

    关于internet-explorer-8 - 如何在 Java EE 应用程序中以编程方式避免 IE8 提供的 session 共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2963983/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com