【问题标题】:Loading the same session in 2 iframes on the same domain在同一域上的 2 个 iframe 中加载相同的会话
【发布时间】:2010-11-24 23:18:45
【问题描述】:

我需要在一个页面上有多个 iframe,它们都相互交互。我们的应用程序的布局方式要求这些 iframe 在同一个会话中运行,以便与其他 iframe 共享有关所选内容等的数据。

问题是在第一页加载时,两个 iframe 都加载了一个 URL,这显然不会在请求中包含会话 cookie。因此,两个 iframe 都会创建一个新会话并将其数据放入其中。但是,它们随后都将会话 cookie 发送下来,最后一个请求会覆盖之前的请求。从那里开始,两个 iframe 使用相同的会话,但只有最后加载的 iframe 中包含有效的会话数据。

如果我刷新“容器”页面,一切正常(因为会话 cookie 有效)。

很遗憾,由于“容器”应用程序的限制,我们无法指定明确的加载顺序。已经想到了那个解决方案...

【问题讨论】:

  • 您是否有任何数据可以将会话链接在一起?也许是用户 ID 或 IP(如果是内部应用)。
  • 是的,我可以从对我的应用程序的请求中获取这两个,但我无法从容器页面获取它。不太确定如何在游戏后期使用它。

标签: asp.net session iframe


【解决方案1】:

所以我解决了这个问题(我真的应该像一年前一样发布这个)......

基本上当用户加载页面时,我会确保会话 cookie 与当前正在执行的请求相同。因此,对于特定用户的 #1 请求,我只是照常进行,只是我记下该用户有一个请求。

在 #1 仍在进行时传入的任何请求都会在 OnBeginRequest 中暂停,直到 #1 已初始化会话。当 #1 初始化其会话时,他使用会话信息更新一个共享实例,然后释放所有其他线程。

效果很好。

【讨论】:

    猜你喜欢
    • 2012-11-17
    • 2017-06-03
    • 2012-07-23
    • 2018-03-20
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    相关资源
    最近更新 更多