質問

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()は完全に、セッション全体の持続性を停止するようです。

あなたはリプレイ攻撃からアプリケーションを保護する必要がある場合は、

そして、また、あなたはを検証セッションではなく内蔵方法これらのいずれかに依存していることをいくつかのロジックを追加する必要があります。それらはだけでなく、アプリケーションを確保するために、セッションデータの永続性を管理するためのものしているようだ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top