2009-02-28 45 views
7

私はキャッシュにオブジェクトを格納するasp.netアプリケーションを作成しています。ページが最初に読み込まれると、オブジェクトのキャッシュがチェックされ、存在する場合はそのオブジェクトが使用されます。オブジェクトが存在しない場合は、オブジェクトを再構築してキャッシュに格納します。複数のユーザーが同時にこのアプリケーションを使用することができるので、私はセッションキーであるキャッシュキーでキャッシュにオブジェクトを格納しようとしていました。さて、私は、ページが戻ってきたときにsessionIDが変わるので、別の一意のキーを使用する必要があることに気付きました。助言がありますか?私はログインした人のuserIDを使うことを考えていましたが、同じIDで複数回ログインできるので、それは一意ではありません。ポストバック時にasp.net sessionIDが変更されますか?

答えて

0

ポストバック時にセッションIDを変更しないでください。同様のことをasp.netが使用しています。 シナリオに関する詳細情報を提供できますか?どのようなタイプのデータで、なぜ「キャッシュする」のですか

更新1:各ポストバックで変更については、クッキーを無効にしましたか? asp.netのどのバージョンを使用していますか?

10

私は(これは2.0,3.5への変更である)私はちょうどMSDNから私の答えを見つけたと思う:

「クッキーベースのセッション状態を使用している場合、ASP.NETは、セッションまでセッションデータ用のストレージを割り当てませんセッションオブジェクトがアクセスされるまで、ページリクエストごとに新しいセッションIDが生成されます。アプリケーションにセッション全体の静的セッションIDが必要な場合は、アプリケーションのグローバルにSession_Startメソッドを実装するか、セッションIDを修正するためにSessionオブジェクトにデータを格納するか、アプリケーションの別の部分でコードを使用してSessionオブジェクトに明示的にデータを格納することができます。

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx

関連する問題