【发布时间】:2011-08-02 02:34:45
【问题描述】:
我没有想法。我正在尝试在同一应用程序池下运行并使用mode="StateServer" 的两个.Net 4 应用程序之间使用相同的SessionState。我对这两个应用程序都进行了测试,结果很奇怪:SessionID 是共享的,但不是实际的会话项。
它在内部是如何工作的?这是某处记录的安全限制吗?
屏幕截图 1 - 我正在 app#1 /SecureSessionTest.aspx 中设置会话项目(TestData 中的简单日期):
屏幕截图 2 - 我正在 app#2 /Apps/SecureSessionTest.aspx 中读取相同的会话项 TestData,但仅显示 SessionID:
我什至可以在同一个Session("key") 中设置不同的数据。奇怪!
他们的 web.config 中都有这个:
<machineKey validationKey='7D1094A0FC13B6656141916F69F6E25D0F112A6E94BD3EF5DAEFD9755A367C09607E7D76827AC5ACAD14456665C4E0966F632F09522475758A815A4045BF3F25' decryptionKey='F0DF9FA0522E541FF246ADD8BC285A10E984444AE4361631' validation='SHA1'/>
<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" timeout="60" regenerateExpiredSessionId="false" cookieName="XXXXXXXX_ASP.NET_SessionId" />
有什么想法吗?非常感谢您的帮助!
卡尔
【问题讨论】:
-
这是一个相对简单的解决方案,同时使用 sql server 作为会话存储:blogs.msdn.com/b/toddca/archive/2007/01/25/…
标签: asp.net session-state stateserver