1. ホーム
  2. asp.net

[解決済み] ASP.NETでは、どのような場合にSession.Abandon()ではなくSession.Clear()を使用するべきですか?

2022-09-01 18:41:06

質問

Session.Clear()とSession.Abandon()はどちらもセッション変数を削除します。 私が理解しているように、Abandon()は現在のセッションを終了し、新しいセッションを作成するため、EndとStartイベントが発生する原因となります。

ユーザーをログアウトさせるなど、ほとんどの場合 Abandon() を呼び出すことが望ましいようです。 代わりに Clear() を使用するようなシナリオはあるのでしょうか? パフォーマンスに大きな違いがあるのでしょうか。

どのように解決するのですか?

Session.Abandon() セッションを破棄します Session_OnEnd イベント がトリガーされます。

Session.Clear() ちょうど はすべての値を削除します。 (コンテンツ) をオブジェクトから削除します。同じキーを持つセッションはまだ生きています。

ですから、もしあなたが Session.Abandon() を使用すると、その特定のセッションを失い、ユーザーは新しいセッションキーを取得します。例えば、ユーザーがログアウトするときにそれを使うことができます。

使用方法 Session.Clear() を使用することで、ユーザが同じセッションに留まり(例えば再ログインさせたくない場合)、セッション固有のデータをすべてリセットすることができます。