Request.Cookies和Response.Cookies之间的区别

Sco*_*lby 30 .net c# asp.net

我在我的代码中多次使用这两个并且不知道区别是什么,如果设置了cookie,它在请求和响应中是否应该完全相同?请求是最新的还是回复?

编辑:

好吧,我得到了请求和响应之间的区别,但如果我输入

string a = HttpContext.Current.Request.Cookie["a"].Value;
Run Code Online (Sandbox Code Playgroud)

它大部分时间都一样

string a = HttpContext.Current.Response.Cookie["a"].Value;
Run Code Online (Sandbox Code Playgroud)

但我想知道使用这两者有什么区别.

Ale*_*kov 31

正如大家所说Request.Cookies的应该是来自客户端(浏览器)Response.Cookies的cookie,并且是将被发送回客户端(浏览器)的cookie.

有一个黑魔法记录良好的*代码,可以将cookie中的值复制ResponseRequest.Cookies添加cookie时Response.作为结果,它看起来像你有两个相同的饼干RequestResponse.请注意,这些复制的cookie并非来自客户端......因此请注意做出错误的决定.

以下是有关代码的讨论链接:http://forums.asp.net/t/1279490.aspx.特别是,以下列方式添加的cookie将显示在Request.Cookies集合中:

Response.Cookies.Add(HttpCookie("MyCookie", "MyValue"))
Run Code Online (Sandbox Code Playgroud)

*文章中Response.Cookies记录了从中复制cookie的行为HttpResponse.Cookies:

使用HttpResponse.Cookies集合添加cookie后HttpRequest.Cookies,即使响应尚未发送到客户端,cookie也会立即在集合中可用.

  • 这听起来更像是一个错误,而不是黑魔法.为什么这种复制会发生? (6认同)