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