asp.net – HttpContext.Request.Cookies和HttpContext.Response
我一直在试验清除HttpContext.Response中所有cookie的代码.
最初,我使用了这个: DateTime cookieExpires = DateTime.Now.AddDays(-1); for (int i = 0; i < HttpContext.Request.Cookies.Count; i++) { HttpContext.Response.Cookies.Add( new HttpCookie(HttpContext.Request.Cookies[i].Name,null) { Expires = cookieExpires }); } 但是,这将导致OutOfMemoryException错误,因为for循环永远不会退出 – 每次向响应中添加一个cookie时,它也会被添加到`Request. 以下方法有效: DateTime cookieExpires = DateTime.Now.AddDays(-1); List<string> cookieNames = new List<string>(); for (int i = 0; i < HttpContext.Request.Cookies.Count; i++) { cookieNames.Add(HttpContext.Request.Cookies[i].Name); } foreach (string cookieName in cookieNames) { HttpContext.Response.Cookies.Add( new HttpCookie(cookieName,null) { Expires = cookieExpires }); } 那么,HttpContext.Request.Cookies和HttpContext.Response.Cookies之间的关系到底是什么? 解决方法
Request.Cookies包含完整的cookie集,包括浏览器发送到服务器的cookie以及刚刚在服务器上创建的cookie.
文件说明:
如果你使for循环向后运行,你的第一个代码示例应该可以工作.新的cookie将在结束后添加,因此向后循环将忽略它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – 是否可以/建议使用EFCore 2.1数据播种系统
- .net-assembly – 如何将DNU WRAP用于不在ASP.Net项目解决方
- asp.net-mvc – MVC 5捆绑和Azure CDN(查询字符串)
- asp.net – 使用内部HTML与ASP:按钮?
- asp.net-mvc – MVC 4:强制ScriptBundle返回Javascript文件
- asp.net – aspx.designer.cs它是如何工作的?
- asp.net-mvc – Html.Hidden字段未设置
- asp.net-mvc – 在VS2012中调试MVC应用程序尝试启动IIS Exp
- asp.net-web-api – Hot Towel / Durandal / Breeze.js:如
- asp.net-mvc – 如何提交本地jqgrid数据和表单输入元素