【问题标题】:Session sharing between two domains两个域之间的会话共享
【发布时间】:2013-02-15 18:18:32
【问题描述】:

我有两个 Web 应用程序,一个在 .net 3.5 框架中,另一个在 .net 4.0 框架(带有 Razor 的 MVC)中。我已经在主域中上传了 3.5 框架应用程序,在子域中上传了 4.0 框架应用程序。我想在这个应用程序之间共享会话。我正在使用会话状态模式作为 sql server。我尝试了诸如在会话 sql 服务器连接字符串中应用应用程序名称和修改 ASPState 数据库中的存储过程 TempGetAppID 的解决方案。它在本地完美运行,但是当我上传到现场时,它不共享会话。然后我还尝试在域之间共享 cookie,但它也不起作用。所以我认为它需要对服务器进行一些更改,但我不知道在哪里进行更改。有人可以帮忙吗?

【问题讨论】:

  • 他们是否共享同一个应用程序池(不确定这是否重要,但这是一个最好的猜测)。在本地,我认为他们会共享同一个应用程序池,这可能就是它起作用的原因。
  • 您必须确保 2 个应用程序连接到同一个数据库文件 - 并且具有相同的应用程序 ID(在数据库上)
  • stackoverflow.com/a/3151315stackoverflow.com/a/2461502 中提到的尝试过的解决方案?
  • 在这篇文章中查看答案:[Post][1]。也许这可以帮助您进一步... [1]:stackoverflow.com/questions/273732/…

标签: asp.net asp.net-mvc-4 session-state


【解决方案1】:

在生产环境中最常见的一点是每个应用都有自己的 machineKey。您可以使用this generator 生成一个并将其放入两个应用程序的配置中,以便它们可以解密来自另一个应用程序的 cookie。默认情况下,会话状态也有包含会话密钥的 cookie,并且要能够共享会话,您应该首先能够共享 cookie。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2013-12-16
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    相关资源
    最近更新 更多