[解決済み] Session.Abandon()とSession.Clear()の違いは何ですか?
質問
セッションを破棄することと、その値を削除することの違いは何でしょうか。これを実演する例を提供してもらえますか。
私はこの質問を検索しましたが、完全な答えを把握していません。いくつかの回答があります。
-
Session.Abandon()
セッションを破棄する -
Session.Clear()
はすべての値を削除します
友人から聞いた話です。
セッションをクリアしても、セッションは解除されません。 セッションはまだ存在しています。 そのユーザーの同じIDで存在します。 値は単にクリアされるだけです。
放棄は、セッションを完全に破壊します。 完全に破壊します。 新しいセッションを開始する必要があります。 セッションにそれ以上の値を保存する前に に値を保存する前に、新しいセッションを開始する必要があることを意味します。
以下のコードは動作し、例外もスローされません。
Session.Abandon();
Session["tempKey1"] = "tempValue1";
セッションをAbandon()すると、あなた(もしくは というよりユーザー)は新しい セッションID
Sessionをテストしたところ、セッションを放棄しても何も変化がありません。
ただ、1つだけ違いがあります。
session.Abandon()
昇給
Session_End
イベント
どのように解決するのですか?
クリア - セッションステートコレクションからすべてのキーと値を削除します。
放棄する
- は、Session に保存されているすべてのオブジェクトを削除します。Abandonメソッドを明示的に呼び出さない場合、サーバーはこれらのオブジェクトを削除し、セッションがタイムアウトしたときにセッションを破棄します。
また、次のようなイベントを発生させます。
Session_End
.
Session.Clearは、次のように比較できます。 本棚からすべての本を取り除く であるのに対し、Session.Abandonはより 棚を全部捨てる .
と言うんですね。
セッションをテストしたところ、セッションを放棄しても何の変化もありません。
している間はこれで正しいです
一回のリクエストで
.
次のリクエストでは、セッションは異なるものになります。しかし
セッション ID は再利用可能です。
を再利用して、ID が同じになるようにします。
Session.Clearを使用すると、多くのリクエストで同じセッションを持つことができます。
一般的に、ほとんどの場合、Session.Clearを使用する必要があります。
ユーザーがサイトを離れることが確実な場合は、Session.Abandonを使用することができます。
では、違いに戻ります。
- Session_End リクエストを放棄します。
- Clear はアイテムを即座に削除しますが、Abandon は削除しません。
- AbandonはSessionStateオブジェクトとそのアイテムを解放し、リソースを解放するためにガベージコレクションを行うことができます。Clear は、SessionState とそれに関連付けられたリソースを保持します。
関連
-
ASP.NET Coreミドルウェアによるグローバル例外処理機構の利用について
-
ASP.NET Core MVC フィルタ
-
デバッグエラー蓄積
-
[解決済み] crossdomain.xmlファイルとは何ですか?
-
[解決済み] C#では、public、private、protected、アクセス修飾子がないことの違いは何ですか?
-
[解決済み] IIS7 の「クラシック」パイプラインモードと「統合」パイプラインモードの違いは何ですか?
-
[解決済み] ASP.NET MVCコントローラは、Imageを返すことができますか?
-
[解決済み] Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). この違いは何ですか?
-
[解決済み] データ入力後に文字列をトリミングする最適な方法。モデルバインダーをカスタムで作成した方が良いですか?
-
[解決済み] ASP.NETでは、どのような場合にSession.Abandon()ではなくSession.Clear()を使用するべきですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
.NET 6:.NETのロギングコンポーネントlog4netを使用する。
-
ASP.NET学習でよくあるエラーのまとめ
-
ASP.NET Core MVC Dependency Injection ビューとコントローラ
-
ASP.NET Core Web API チュートリアル プロジェクト構成図
-
.NET 6における暗黙の名前空間参照
-
ASP.NETでのRadioButton(ラジオボタン)の使用について
-
[解決済み] カタナ」と「オウイン」をわかりやすく説明すると?
-
[解決済み】開発環境と本番環境で異なるWeb.configを使用する。
-
[解決済み] フォーム認証のタイムアウトとsessionStateのタイムアウトの比較
-
[解決済み] ASP.NET Web APIでのユーザー認証