2012-01-17 13 views
18

HTTPセッションのスコープは正確に何ですか?HTTPセッションの有効範囲は何ですか?

私はこれをやっていますが、まっすぐな答えを得られないようです - セッションが「ユーザーがブラウザを閉じると」クリアされるはずですが、それは私には分かりません - ブラウザを閉じるウィンドウを閉じる、またはブラウザアプリケーションを終了する2つのブラウザウィンドウを同時に開いているユーザーは、2つの異なるセッションを維持していますか?そして、同じセッションであればブラウザのタブは常に部分ですか?

答えて

13

これは、アプリケーションでセッションをどのように追跡しているかによって異なります。

デフォルトでは、それらはHttpOnly cookiesによって追跡されます。つまり、ユーザーが現在のタブを閉じると、セッションを失うことはありません。彼はセッションを失うが、彼はブラウザを閉じる。

cookielessモードを使用してセッションを追跡する場合(cookieless="true")、ASP.NETはすべてのURLにカスタムトークンを追加し、同じブラウザインスタンスの2つの異なるタブに2つの異なるセッションでログインすることができます。

+0

Darin-だから、あなたはHttpOnly Cookieのために、セッションは各ブラウザ*ウィンドウ*の存続期間に及ぶと言いますか? – Yarin

+0

@ヤリン、はい、まさに私が言っていることです。たとえば、ログアウトするなどの1つのブラウザタブで何かを変更すると、アクティブなセッションがある場合は他のすべてのタブで自動的にログアウトされます。 –

5

すべての質問に対する回答は、「それに依存します」です。

複数のブラウザウィンドウを複数のセッションにすることも、同じセッションにすることもできます。ブラウザの動作とウィンドウのオープン方法によって異なります。

IEでは、[新しいウィンドウ]と[新しいセッション]のメニューオプションがあります。 'New Window'オプションは同じセッションを維持し、 'New Session'オプションは別のセッションで新しいウィンドウを開きます。また、ブラウザを起動するときにShiftキーを押しながらIEで新しいセッションを取得することもできます。

すべてのセッションが終了していることを確認する必要がある場合は、すべてのブラウザウィンドウを閉じます。

+0

BNL-「窓を開けた方法」とはどういう意味ですか?あなたは精緻化できますか? – Yarin

+0

説明で編集しました。 – BNL

+0

OKありがとうございました。私はあなたに部分的なクレジットを与えることができました。 – Yarin

3

セッションCookieは、通常、ブラウザ全体が終了すると削除されます。複数のタブ/ウィンドウが同じクッキーを共有するため、これらのタブ/ウィンドウは同じセッションを使用します。

ただし、アプリケーションはURLを介してセッション識別子を渡すこともできます。この場合、すべてのタブ/ウィンドウは、有効なセッションIDを持つリンクで開かない限り、独自のセッションを持ちます。

+0

ThiefMaster - 「ブラウザ全体が終了したら」=ブラウザアプリケーションを終了しますか? – Yarin

関連する問題