添加到Response.Cookies的Cookie也会添加到Request.Cookies中。有没有办法获得原始的Request.Cookies?

时间:2011-11-21 23:24:19

标签: asp.net cookies

如果我通过Response.Cookies.Add()向回复添加Cookie,则Cookie也会显示在Request.Cookies中。

有没有办法在没有提前缓存Request.Cookies的情况下获取原始请求cookie(忽略新添加的响应cookie)?

another question询问为什么会出现这种情况(这一点我很清楚)。我问是否有任何解决办法。

更新

作为一个非常粗略的过滤器,您似乎可以在Request.Cookies等于Expires的{​​{1}}中查找Cookie。这是因为当浏览器在请求中序列化其cookie时,它们不包括它们的到期日期。

但是,如果没有default(DateTime),这不会消除任何意外添加到Response的Cookie。

1 个答案:

答案 0 :(得分:2)

Request.Headers["Cookie"]包含浏览器发送的原始标头值。它是以分号分隔的键值对列表。 。E.g,:

key1=value1; key2=value2

可以将其解析为Dictionary<string, string>以找出请求的原始Cookie(忽略通过操纵Request.CookiesResponse.Cookies添加或修改的任何Cookie)。

(这些值是URI编码的,以避免包含等号或分号的值的任何Bobby Tables情况。)