asp.net – 为什么HttpContext.Response.Cookies [“foo”]添加
发布时间:2020-12-16 03:21:14 所属栏目:asp.Net 来源:网络整理
导读:由于以下行为,我花了半天时间追踪错误: – 想象一下,在Http请求或响应的cookie集合中没有名为“foo”的cookie.以下代码返回null A) HttpContext.Current.Request.Cookies["foo"] 以下代码创建一个名为“foo”的新cookie(带有path =“/”和空值),将其添加到
由于以下行为,我花了半天时间追踪错误: –
想象一下,在Http请求或响应的cookie集合中没有名为“foo”的cookie.以下代码返回null A) HttpContext.Current.Request.Cookies["foo"] 以下代码创建一个名为“foo”的新cookie(带有path =“/”和空值),将其添加到响应的cookie集合中并返回 B) HttpContext.Current.Response.Cookies["foo"] 所以(B)的副作用是在客户端的浏览器上覆盖任何预先存在的名为“foo”的cookie. 这不是一个错误.有人故意对此进行编码.这是Get方法的反汇编(Item [string name] indexer委托给这个方法. public HttpCookie Get(String name) { HttpCookie cookie = (HttpCookie)BaseGet(name); if (cookie == null && _response != null) { // response cookies are created on demand cookie = new HttpCookie(name); AddCookie(cookie,true); _response.OnCookieAdd(cookie); } return cookie; } 显然,MSDN文档没有提到这种行为(尽管有些用户在描述此行为的文档底部添加了注释). 我的问题是有人可以向我解释HttpCookieCollection类有这种行为的理由. 解决方法
为什么?猜测,因为它是有道理的.如果您对响应做了任何事情,那么典型的用例就是您希望将内容发送到浏览器.
您检查入站值(Request.Cookies),然后将它们设置为出站(Response.Cookies).请求是READ,响应是WRITE. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 加载程序集时会发生什么?
- asp.net-mvc – 为什么visual studio 2012会在mvc项目中自动
- .net – 日志框架与System.Diagnostics跟踪
- 【DevExpress v17.2新功能预告】DevExpress ASP.NET Schedu
- 用枚举填充ASP.NET MVC中的SelectList
- entity-framework – ASP.NET MVC 2.0在jqgrid中执行搜索
- 尝试使用asp.net流式传输PDF文件会产生“损坏的文件”
- asp.net – Visual Studio IIS Express不工作
- asp.net-core – 从appsettings.json获取ConnectionString,
- asp.net-mvc-4 – 我应该如何使用ReturnUrl = ViewBag.Retu
推荐文章
站长推荐
- asp.net – 如何使用TLS电子邮件与web.config
- asp.net – 任何有关绘图组件/库的经验
- 文本框使用textmode密码不显示文本asp.net c#
- asp.net-mvc – MVC 3多个DisplayFor-Templates
- asp.net-mvc – 将所有js文件捆绑在一个捆绑包中
- ASP.NET 4中仍然需要App_Browsers文件夹吗?
- asp.net-mvc – ASP.NET MVC安全建议
- asp.net-mvc – 依赖注入和ASP.Net成员提供程序
- asp.net – 将网站置于维护模式?
- asp.net-mvc – MVC ELMAH和SQL Azure
热点阅读