一度にすべてのセッションを破棄したい。メソッドを試しSession.Abondon()
ましたが、これがすべてのセッションを破壊しない理由がわかりません。
6 に答える
すべてのセッションを破棄することはできません。現在のセッションのみをクリアできます。すべてのセッションを消去するには、おそらくアプリケーション プールをリサイクルする必要があります。
HttpSessionState.Clear
現在のセッションをクリアするために使用します
MSDN から - HttpSessionState.Clear メソッド
セッション状態コレクションからすべてのキーと値を削除します。
次のように呼び出します。
Session.Clear();
一度にすべてのセッションを破棄したい
アプリケーションをリサイクルしない限り、これを行うことはできないと確信しています。
現在受け入れられている回答は を使用することを提案してSession.Clear
いますが、これは現在のセッションをクリアするだけです - と同じSession.RemoveAll
です。
まったく同じことを行うClear
2つのメソッドがあるのはなぜですか? は、 ASP Classic Session オブジェクトとの下位互換性のために提供されているRemoveAll
と思われますが、.NET コレクションから項目をクリアするためのより一般的なメソッド名です。RemoveAll
Clear
セッション変数を削除できる方法は 3 つあります。
Session.Clear()
Session.RemoveAll()
Session.Abandon()
Clear()
同じことをRemoveAll()
実行します。セッション変数を削除しますが、現在のセッションをメモリに保持します。一方、Abandon()
現在のセッションを終了します。
あなたは使用する必要があります
this.Page.Session.Clear();
放棄は現在のセッション専用です。
試す:
Session.Contents.RemoveAll()
Session.Clear()またはSession.RemoveAll()メソッドを使用する
Session.Clear()
or
Session.RemoveAll()