如果我通过Response.Cookies.Add()
向回复添加Cookie,则Cookie也会显示在Request.Cookies
中。
有没有办法在没有提前缓存Request.Cookies
的情况下获取原始请求cookie(忽略新添加的响应cookie)?
有another question询问为什么会出现这种情况(这一点我很清楚)。我问是否有任何解决办法。
作为一个非常粗略的过滤器,您似乎可以在Request.Cookies
等于Expires
的{{1}}中查找Cookie。这是因为当浏览器在请求中序列化其cookie时,它们不包括它们的到期日期。
但是,如果没有default(DateTime)
,这不会消除任何意外添加到Response
的Cookie。
答案 0 :(得分:2)
Request.Headers["Cookie"]
包含浏览器发送的原始标头值。它是以分号分隔的键值对列表。 。E.g,:
key1=value1; key2=value2
可以将其解析为Dictionary<string, string>
以找出请求的原始Cookie(忽略通过操纵Request.Cookies
或Response.Cookies
添加或修改的任何Cookie)。
(这些值是URI编码的,以避免包含等号或分号的值的任何Bobby Tables情况。)