web-dev-qa-db-ja.com

asp.netで一度にすべてのセッションを破棄する方法は?

すべてのセッションを一度に破棄したい。 Session.Abondon()メソッドを試しましたが、なぜこれがすべてのセッションを破壊しないのかわかりません。

18
Ram

すべてのセッションを破棄することはできません。現在のセッションのみをクリアできます。すべてのセッションをクリアするには、おそらくアプリケーションプールをリサイクルする必要があります。


使用する HttpSessionState.Clear現在のセッションをクリアする

MSDNから-HttpSessionState.Clearメソッド

セッション状態コレクションからすべてのキーと値を削除します。

次のように呼び出します:

Session.Clear();
23
Habib

すべてのセッションを一度に破棄したい

アプリケーションをリサイクルしない限り、これを実行できないと確信しています。

現在受け入れられている答えはSession.Clearの使用を提案していますが、これは現在のセッションをクリアするだけです-Session.RemoveAllと同じです。

まったく同じことを行う2つのメソッドClearRemoveAllがあるのはなぜですか? RemoveAllASP Classic Sessionオブジェクト との後方互換性のために提供されていると思われますが、Clearは.NETコレクションからアイテムをクリアするためのより一般的なメソッド名です。

4
Joe

セッション変数を削除できる3つの方法があります

_Session.Clear()
Session.RemoveAll()
Session.Abandon()
_

Clear()RemoveAll()は同じことを実行します。セッション変数を削除しますが、現在のセッションはメモリに保持します。一方、Abandon()は現在のセッションを終了します。

3
Jainendra

試してください:

Session.Contents.RemoveAll()
0
CloudyMarble

Session.Clear() または Session.RemoveAll() メソッドを使用します

Session.Clear()
    or
 Session.RemoveAll()
0
Waqar Janjua

使用する必要があります

this.Page.Session.Clear();

放棄は、現在のセッションのみです。

0
VIRA