ASP.NET Response.Cookie正在设置,当我只想得到

时间:2012-05-23 03:26:15

标签: asp.net cookies

我有一个页面检查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而不会无意中将其设置为空白的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

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

如果你真正意味着你所写的内容,你可以让早期的逻辑在变量中保存值,以确定最终的输出cookie设置。