我在代码中多次使用这两种方法,但我不知道它们之间的区别是什么,如果设置了cookie,那么请求和响应中的cookie不应该完全相同吗?请求是最新的还是回应?

编辑:

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

string a = HttpContext.Current.Request.Cookie["a"].Value;

大多数情况下,这与

string a = HttpContext.Current.Response.Cookie["a"].Value;

但是我想知道使用这两个有什么不同.

推荐答案

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

有一个黑魔法文档很好的*代码,当您将Cookie添加到Response时,它会将值从Response个Cookie复制到Request.Cookies个.因此,看起来您在RequestResponse中都有相同的cookie.请注意,这些复制的cookie不是来自客户端.所以当心不要做出错误的决定.

这里有一个关于代码讨论的链接:http://forums.asp.net/t/1279490.aspx.特别是,以以下方式添加的cookie将出现在Request.Cookies系列中:

Response.Cookies.Add(HttpCookie("MyCookie", "MyValue"))

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

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

Asp.net相关问答推荐

如何使用 Get-Process powershell 命令通过端口号获取进程的 ID

如何在没有 Select 按钮的情况下在 GridView 中实现全行 Select ?

使用实体框架从存储过程中获取数据

IIS 将旧用户名返回到我的应用程序

使用 jQuery.ajax() 时如何处理错误?

ASP.net 页面在导入语句上出现错误,但我确实有参考?

Web.config 导致被组策略阻止错误

Jquery asp.net 按钮单击事件通过 ajax

为什么 Asp.Net Identity IdentityDbContext 是一个黑盒?

从命令行复制 VS2008发布网站

在asp.net mvc 3中实现FilterAttribute,IActionFilter和从ActionFilterAttribute继承有什么区别?

存在 ios 7 虚拟键盘时,div 元素不会停留在底部

DropDownList AppendDataBoundItems(第一项为空白且无重复项)

不能在 DropDownList 中 Select 多个项目

模型是否包含字段而不将其添加到数据库中?

哪个控件导致了回发?

ASP.NET 发布try 复制不存在的文件

当文件上传超出 ASP.NET MVC 中允许的大小时显示自定义错误页面

配置授权服务器端点

禁用文本框的模型绑定