我在胡思乱想。我正在尝试在同一应用程序池下运行并使用 .Net 4 的两个应用程序之间使用相同的 SessionState mode="StateServer"
。我对这两个应用程序都进行了测试,结果很奇怪:SessionID is shared,但不是实际的 session items。
它在内部是如何工作的?这是某处记录的安全限制吗?
屏幕截图 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" />
有任何想法吗?非常感谢帮助!
卡尔