2012-04-26 5 views
0

が作成されます。私は、セッション変数がメモリに格納されていると思って、セッションIDクッキーのみが作成されます。何らかの理由で、セッション変数を作成するたびに、同じ名前のクッキーも作成されます。それは正常な行動ですか?セッション変数を作成すると、タイトルのように問題が自動的にクッキー

コード:

HttpContext.Current.Session[varName.ToString()] = value; 
+1

セッション状態に関するいくつかの[情報](http://msdn.microsoft.com/en-us/library/ms178581.aspx)です。 「Cookieess SessionIDs」のセクションを読んでください。あなたが望むものなら、あなたがクッキーを無効にすることができるようです。 – Jeremy

+2

通常、1つのCookieセッションがあります。 セッションのすべての変数に対して、同じ名前のCookieを持つことは正常ではありません。 – Aristos

答えて

1

が、それは正常な動作ですか?

はい、これは絶対に正常です。デフォルトでは、セッションはCookieによって追跡されます。だからセッションに何かを保存すると、ユニークなIDを持つクッキーがクライアントに送信され、以後のリクエストでこのクライアントがクッキーを送信し、サーバーはこのIDを使用してメモリに格納されているものを取得できます。

以降のリクエストでセッションの値を更新すると、新しいCookieは作成されません。セッションはすでにこのクライアントに関連付けられています。

+0

私はあなたが誤解していると思います。 SessionID Cookieを作成するのは正常ですが、なんらかの理由でセッション変数と同じ名前のCookieも作成されます。それも普通ですか? –

+0

いいえ、それは正常ではなく、起こるべきではありません。だからあなたはあなたの質問に表示されているコード行を含むコントローラアクションを呼び出した後、2つのクッキーが作成されると言っていますか?ところで、なぜあなたは 'HttpContext.Current'を使用していますか?あなたは決してそれを使うべきではありません。フレームワークがセッションにアクセスするために提供する抽象化を使用します。 –

関連する問題