两个域之间的会话共享
Posted
技术标签:
【中文标题】两个域之间的会话共享【英文标题】: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(在数据库上) ***.com/a/3151315 和 ***.com/a/2461502 中提到的尝试过的解决方案? 在这篇文章中查看答案:[Post][1]。也许这可以帮助您进一步... [1]:***.com/questions/273732/… 【参考方案1】:在生产环境中最常见的一点是每个应用都有自己的 machineKey。您可以使用this generator 生成一个并将其放入两个应用程序的配置中,以便它们可以解密来自另一个应用程序的 cookie。默认情况下,会话状态也有包含会话密钥的 cookie,并且要能够共享会话,您应该首先能够共享 cookie。
【讨论】:
以上是关于两个域之间的会话共享的主要内容,如果未能解决你的问题,请参考以下文章
在不同服务器上的 ReactJS 和 WIX Web 应用程序之间共享会话