我有一个页面检查HttpResponse
上设置的cookie的值,并且根据某些条件,页面可能会修改该值。逻辑基本上是:
If Response.Cookie("foo").Value = "bar" Then
Response.Cookie("foo").Value += "rawr"
End If
显然,任何从Response.Cookie
中获取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会被清空(因为获取If
中的Cookie会将其设置为空白,条件从不将其设置为+="bar"
。
检查和修改 Response.Cookie
集合中的Cookie而不会无意中将其设置为空白的正确方法是什么?
答案 0 :(得分:0)
我认为你的意思是检查Request.Cookies(“foo”),而不是Response.Cookies。(“foo”)。
如果你真正意味着你所写的内容,你可以让早期的逻辑在变量中保存值,以确定最终的输出cookie设置。