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