ASP.NetでSession.Abandon()とSession.Clear()の違いは何ですか?
-
26-09-2019 - |
質問
ASP.Net?
でSession.Abandon()
とSession.Clear()
の違いは何ですか 解決
Session.Abandon()
は、現在のセッションを終了します。 Session_End
が解雇され、次の要求がSession_Start
イベントを発生させます。
Session.Clear
だけのセッションデータをクリアし、セッションは生きているままになります。
セッションIDがいる限り、ブラウザが閉じられていないとして、どちらの場合も同じままになります。
のの一言で言えば
Session.Abandon();
は現在Session
をキャンセルします。Session.Clear();
Session
状態からすべての値をクリアします。
他のヒント
Session.Abandon()
セッション全体を殺す/破壊されます。
Session.Clear()
削除し/セッションデータをクリアする(現在のセッションから、すなわちキーと値)が、セッションが生きているであろう。
Session.Abandon()メソッド、Session.Clear(と比較)新しいセッションを作成しません、それだけでNULLにセッション内のすべての変数を作成します。
は、セッションIDがいる限り、ブラウザが閉じられていないとして、どちらの場合も同じままになります。
私の経験から、ここで注意すべきいくつかの事柄ます:
Session.Abandon()
は、現在のセッションを無効にしません。あなたがそれらを再生する場合は、古い要求は罰金を実行します。
しかし、あなたはそれを呼び出した後、捨てられたセッションの内容を設定しても永久的な効果を持っていない辞書。次の要求があります。
です(メソッドと呼ばれた後)とそれに対する以前の変更なし(以前の要求を再生することにより、同じセッションIDを使用している場合でも)新鮮な新しいセッション辞書を取得しますだから、Session.Abandon()
だけでそのデータを削除しながら、そのSession.Clear()
は完全に、セッション全体の持続性を停止するようです。
そして、また、あなたはを検証セッションではなく内蔵方法これらのいずれかに依存していることをいくつかのロジックを追加する必要があります。それらはだけでなく、アプリケーションを確保するために、セッションデータの永続性を管理するためのものしているようだ。