HttpCookieCollection.Add vs HttpCookieCollection.Set - Request.Cookies集合是否被复制到Response.Cookies集合?

sma*_*man 23 asp.net httpresponse httprequest httpcookie httpcookiecollection

我只是想澄清一下.

我知道,如果我在之前的请求中设置了cookie,它将显示在我的Request.Cookies收藏中.

我想更新现有的Cookie.

我的Request.Cookies收藏中的cookie是否已复制到我的Response.Cookies收藏中?我是否需要使用相同的密钥添加新的cookie Response.Cookies.Add(),或者我是否需要使用Response.Cookies.Set()

Pre*_*ott 28

它们是有区别的:

重复cookie通常需要额外处理以确定哪个是最新的.我不确定你是否想要在同一个网站上使用重复的cookie,也许其他人可以通过一个例子来填充

编辑:在您的情况下,您要使用set,因为您正在更新.

  • 谢谢 - 我也做了一些反思,我意识到我问的是错误的问题.请查看这篇文章:http://stackoverflow.com/questions/5517595/what-is-the-best-practice-for-updating-a-cookie-that-was-set-on-a-previous-reques (3认同)
  • 这是有据可查的。[原始文档](https://msdn.microsoft.com/zh-cn/library/system.web.httpcookiecollection.set(v = vs.110).aspx)包含以下语句:“更新**的值cookie集合中的现有** cookie”,这是错误的,因为如果cookie不存在,则会添加它。[底层代码](https://referencesource.microsoft.com/#System.Web/HttpCookieCollection.cs,98)使用“ BaseAdd”调用来更新现有密钥并添加新密钥。 (3认同)