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".

检查和修改 Response.Cookie 集合中的 cookie 而不无意将它们设置为空白的正确方法是什么?

4

1 回答 1

0

我认为您的意思是检查 Request.Cookies("foo"),而不是 Response.Cookies.("foo")。

如果你真的是认真写的,你可以在变量中保存更早的逻辑值,这些值将决定最终的输出 cookie 设置。

于 2013-12-16T20:37:58.363 回答