私は考えを払っています。同じアプリケーションプールの下で実行されている2つの.Net 4アプリの間で同じSessionStateを使用しようとしており、mode="StateServer"
を使用しています。私は両方のアプリケーションでテストを行ったと私は好奇心の結果があります:SessionIDは共有されますが、実際のセッション項目ではありません。StateServerを持つ2つのアプリケーション間でASP.NET SessionStateを共有すると、同じSessionIDは共有されますが、キー値は共有されません。なぜですか?
内部的にどのように機能しますか?これはどこかで文書化されたセキュリティ制限ですか?私は同じことを読んでいる -
スクリーンショット2: -
スクリーンショット1 1 /SecureSessionTest.aspxアプリ#で、私はセッションの項目を設定しています(TESTDATAでシンプル日付)セッション項目アプリ#2 /Apps/SecureSessionTest.aspxでTESTDATAが、唯一のセッションIDが表示されます:
私も同じ0で異なるデータを設定することができます。奇妙な!
彼らの両方が彼らの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を使用しているときの比較的簡単な解決策です。http://blogs.msdn.com/b/toddca/archive/2007/01/25/sharing-asp-net-session-state-across -applications.aspx – VinayC