2011-01-26 18 views
1

から値を取得する:は設定できません/私は次のロジックを持つ非常にシンプルなページ持っているクッキー

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (null == Response.Cookies["UserSettings"].Value) 
    { 
     HttpCookie cookie = new HttpCookie("UserSettings"); 
     cookie.Value = "The Big C"; 
     cookie.Expires = DateTime.Now.AddDays(10); 
     Response.Cookies.Add(cookie); 
    } 
    else 
    { 
     // got here 
    } 
} 

を私はifelseの両方にブレークポイントを設定し、elseブレークポイントがヒットれることは決してありません。 ifステートメントは毎回命中します。ここで何が間違っているのでしょうか?

ありがとうございます!

+2

Request.CookiesとResponse.Cookiesの両方が同じ値を持っていますか?私は彼らがそうだと思うが、Request.Cookiesがあなたにクッキーを返すかもしれないことを二重にチェックすることができるだろうか? –

+0

要求は正しい値を返します(Big C)。クッキーを読むためにレスポンスの代わりにリクエストを使うべきですか? –

+0

確かに...応答はあなたの次の行にまだ作成されているので、あなたにクッキーを与えません。 –

答えて

5

Response.Cookiesをチェックする理由は、Request.Cookiesです。応答がまだ作成されます。..

更新

クッキーはすぐHttpRequest.Cookiesコレクションで利用可能あるHttpResponse.Cookiesコレクションを、使用してクッキーを追加を参照してください、応答がクライアントに送信されていなくても。 が追加される前でさえ、コレクションのクッキーをチェックしています。それで、あなたはRequest.Cookieコレクションでそれをチェックする必要があります

+0

説明ありがとうございました –

+0

嬉しいです。幸運:-) –

関連する問題