1

ユーザーがログインするときに、キャッシュに何かを挿入しています。

ユーザーのセッションが期限切れになったら、キャッシュから削除したいと思います。HttpContext は null です..そのため、どのユーザーのセッションが期限切れになったかわかりません。これを見つけるにはどうすればよいですか?

編集:残念ながら、SessionID はあまり役に立ちません。この特定のケースで私が行っているのは、AuthorizeRequest を処理する HttpModule を使用して現在の userName をキャッシュに挿入し、別のマシンの別のユーザーがログインできないようにすることです。しかし、セッションは HttpModule で null です。だから私はそれを使用することはできません。他の提案はありますか?

4

3 に答える 3

1

各ページでキャッシュされたアイテムにアクセスしていると仮定すると、キャッシュされたアイテムの有効期限がスライドするように設定できます。有効期限をセッション タイムアウトと同じに設定します。スライド有効期限では、オブジェクトがアクセスされるたびにキャッシュが更新され、その時間内にアクセスされない場合は破棄されます。

詳細については、 http://msdn.microsoft.com/en-us/library/4y13wyk9.aspxを参照してください。

于 2008-11-18T14:26:44.330 に答える
1

global.asax で Session_End イベントを処理します。ここで、SessionID にアクセスできる必要があります。

于 2008-11-18T13:12:08.193 に答える
1

HttpModule でセッションにアクセスできます。初期化されるまで、つまり AcquireRequestState イベント ( http://msdn.microsoft.com/en-au/system.web.httpapplication.acquirerequeststate.aspx )を待つだけです。

于 2008-11-18T13:45:54.787 に答える