Session_Endの特定のユーザーデータをキャッシュから削除する
-
08-07-2019 - |
質問
ユーザーがログインするときにキャッシュに何かを挿入しています。
今、ユーザーのセッションが期限切れになったときにキャッシュからそれを削除します。 HttpContextはnull ..ですので、セッションの有効期限が切れたユーザーはわかりません。これを見つけるにはどうすればいいですか?
編集:残念ながら、SessionIDはあまり提供していません。この特定のケースで私がしていることは、AuthorizeRequestを処理するHttpModuleを使用して、キャッシュに現在のuserNameを挿入し、別のマシンの別のユーザーがログインできないようにすることです。ただし、HttpModuleのSessionはnullです。だからそれは使えない。他の提案?
解決
HttpModuleでセッションにアクセスできます。初期化されるまで、つまりAcquireRequestStateイベント( http://msdn.microsoft.com/en-au/system.web.httpapplication.acquirerequeststate.aspx )
他のヒント
global.asaxでSession_Endイベントを処理します。ここで、SessionIDにアクセスできるはずです。
各ページのキャッシュされたアイテムにアクセスしていると仮定すると、キャッシュされたアイテムにスライド式の有効期限を設定できます。有効期限をセッションタイムアウトと同じに設定します。スライド式の有効期限では、オブジェクトにアクセスするたびにキャッシュが更新され、その時間内にアクセスされない場合は破棄されます。
http://msdn.microsoft.com/en-us/を参照してください。詳細については、library / 4y13wyk9.aspx を参照してください。