我们一直在尝试在多个 MVC 站点之间共享会话。我们需要这样做,以便我们可以将我们的会话与几个旧的 Web 表单站点集成。
我们已经从http://code.msdn.microsoft.com/CSASPNETShareSessionBetween-021daa39实现了 CSASPNETShareSessionBetweenSubDomains 类,并根据http://blogs.msdn.com/b/toddca/archive/2007/01/对存储过程进行了更改25/sharing-asp-net-session-state-across-applications.aspx。
我们还在使用 SQL Server 的 2 个 ASP.NET 应用程序之间为每个共享会话状态添加了 httpCookies 处理程序到 web.config
当我们在两个子域之间进行测试时,它们似乎具有相同的会话 ID,但是,当我们从 ASPStateTempSessions 中进行选择时,我们看到存储的 sessionId 包含附加了一些其他值的 sessionId:
来自 cookie 的 SessionId:srvgqxts1yzuqnswr5pv0eoo
表中的值:
- srvgqxts1yzuqnswr5pv0eoo0e8cc1f9
- srvgqxts1yzuqnswr5pv0eoo15890198
我似乎附加的这个值导致会话在两个子域之间是唯一的。我希望有人有在 MVC 应用程序之间共享会话的经验,甚至更好地了解如何与旧 Web 表单站点共享相同的会话。
提前致谢