1

に設定されている Cookie の値をチェックするページがありHttpResponse、特定の基準に応じて、ページがその値を変更する可能性があります。ロジックは基本的に次のとおりです。

If Response.Cookie("foo").Value = "bar" Then
    Response.Cookie("foo").Value += "rawr"
End If

どうやら、Cookie を取得しようとするとResponse.Cookie、その Cookie が応答に設定されるようです。次のコードでは、コレクションに何も設定または追加されていませんが ...Response.Cookie

Dim c As HttpCookie = Response.Cookies("rawr")
Response.Cookies.Get("foo")

...応答にはまだ含まれています...

Set-Cookie: rawr=; path=/
Set-Cookie: foo=; path=/

つまり、元のコード スニペットで意味することは、Cookie の値が と等しくない場合foo、Cookie が空になるということです (設定で Cookie を取得Ifすると空白に設定され、条件によって+="bar".

意図せずに空白に設定することなく、コレクション内の Cookie を検査および変更する適切な方法は何ですか?Response.Cookie

4

1 に答える 1

0

Response.Cookies.("foo") ではなく、Request.Cookies("foo") をチェックするつもりだと思います。

本当に意図して書いたのであれば、最終的な出力 Cookie 設定を決定する値を変数に保持する以前のロジックを持つことができます。

于 2013-12-16T20:37:58.363 に答える