私はアイデアを推測しています。同じアプリケーションプールで実行され、を使用している2つの.Net4アプリ間で同じSessionStateを使用しようとしていますmode="StateServer"
。両方のアプリでテストを行いましたが、興味深い結果が得られました。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" />
何か案は?ヘルプは非常にありがたいです!
カール