请求的默认同步.Cookie和响应.饼干



是否有人可以澄清我在中的行为。NET 4.0 web应用程序,当尝试在响应中操作cookie集合时。Cookie和/或请求。饼干。尽管我努力寻找文档或论坛帖子来明确确认Request的预期默认行为。Cookie和响应。Cookie,我从来没有找到一个明确的答案,我现在遇到了一个需要的情况!

我的确切问题是:*是请求。Cookie和响应。Cookie肯定应该被认为是完全独立的集合,或者它们实际上代表了同一集合的两种不同的"视图"?

  • 请求之间的"关系"在多大程度上建立了同步。Cookie和响应。饼干。除了一个cookie添加到响应之外。Cookie在请求中立即可见。Cookie,我之所以知道它,是因为它已经被记录下来了,我是否应该默认地期望两个集合中的所有其他Cookie由于额外的自动同步而始终相同?

  • 如果有一些同步,是即时的,还是在生命周期的某个特定阶段处理?

  • 如果有一些同步,是否有可能,甚至是可取的,来避免它的发生?

  • 处理以前过时的浏览器请求中的重复cookie的最佳方法是什么?目前,我这样做的努力并没有成功,因为我对回应所做的任何改变。Cookie会立即包含在请求中。饼干(再次出现预期行为),但是。。。发生了一些隐含的"幻影"过程,其结果是再次同步集合——换句话说,我能找到的唯一可能的结果是我的响应。cookie集合中没有重复的cookie副本,或者返回到两个重复cookie的原始状态。

显然,从最后一个问题来看,我显然误解了这两个集合的默认行为。这就是为什么我们会非常感激地收到任何关于应该发生什么的澄清!

提前感谢。。。

Request和Response对象的Cookies属性是HttpCookieCollection的两个不同实例。但是,当初始化响应对象时,会使用响应对象的引用创建HttpCookieCollection的实例
对响应的调用。饼干。Add不仅会添加一个cookie自身实例,还会添加到请求中。Cookie,通过响应。OnCookieAdd(cookie)
总的来说,您希望遵循从请求中获取cookie的做法。cookie和超时(删除浏览器上的cookie),或者修改它,然后将其设置回响应。如果只想添加cookie,请使用add方法,否则请使用Set确保只返回一个该名称的cookie。请参阅另一篇文章。

最新更新