回答:
Session.Abandon()
セッションを破棄し、Session_OnEndイベントがトリガーされます。
Session.Clear()
オブジェクトからすべての値(コンテンツ)を削除するだけです。同じキーのセッションはまだ生きています。
したがって、を使用するとSession.Abandon()
、その特定のセッションが失われ、ユーザーは新しいセッションキーを取得します。たとえば、ユーザーがログアウトするときに使用できます。
使用Session.Clear()
、ユーザーが同じセッション中に残っていることをしたい場合(あなたがたとえば再ログインにユーザーをしたくない場合)、すべてのセッション固有のデータをリセットします。
Session.Abandon()
Windows認証を使用する内部アプリの「ログアウト」としてのみ使用-ユーザーは再認証する必要がなく(Chrome、FF)、セッションが
ユーザーがログアウトするときにのみSession.Clear()を使用すると、セキュリティホールが発生する可能性があります。セッションはWebサーバーに関する限り有効です。次に、セッションIDを傍受して取得し、そのセッションをハイジャックすることは、かなり簡単なことです。
このため、ユーザーをログアウトするときは、Session.Abandon()を使用してセッションを破棄し、新しいセッションを作成する方が安全で賢明です(ログアウトUIページが新しいセッションの一部であっても、新しいセッションにはユーザーの詳細が含まれておらず、新しいセッションをハイジャックすることは新しいセッションを持つことと同じであるため、ミュートになります)。
Session.Abandon
上記のようにセッションを破棄するため、誰かをログアウトさせるときにこれを使用する必要があります。Session.Clear
eコマースのウェブサイトで買い物かごに使うのが良いと思います。これにより、ユーザーをログアウトせずにバスケットがクリアされます。
Session.Abandon
、特定の買い物かごを空にするために使用した場合はどうなりますか?