asp.net 跨子域的持久会话变量

asp.net persisting session variables across sub-domains

我有两个 ASP.NET 应用程序使用表单身份验证和单点登录,我想在它们之间保留会话变量。

经测试,我似乎无法从其他应用程序读取会话变量。这两个应用程序都在同一个域 (app1.domain.com & app2.domain.com) 并且我已经正确设置了我的配置 (a.f.a.i.k.) 以反映这一点。

我注意到在发布服务器上测试时会话 ID 是不同的,即使在同一浏览器上使用标签页也是如此(我认为它们是一样的!),但在我的本地 IIS 上调试会话 ID 是相同(而且我仍然无法跨子域读取会话变量)。

有人对我可能遗漏的内容有任何指示吗?

此致

默认情况下,SessionState 模式是InProc,这意味着Session State 数据存储在每个AppDomain 的内存中。 AppDomains 是隔离的,它们不共享 SessionState。

您需要 SQLServerStateServer 作为 SessionState mode