手机版

ASP的原因 NET的回应 Cookies . Remove无法删除COOKIE

时间:2021-11-19 来源:互联网 编辑:宝哥软件园 浏览:

示例:复制代码如下:受保护的void page _ load(对象发送方,eventargs e) {if(!IsPostBack){ httpookie UserInfo=new httpookie(' UserInfo ');用户信息。Value=' bdstjk回应。cookies . Add(UserInfo);} }受保护的void btnRemoveCookie _ Click(对象发送者,事件参数e){ Response。Cookies。删除(' UserInfo ');Response.write('脚本类型=\ ' text/JavaScript ' alert(\ ' Cookie已成功删除!\');/script ');}受保护的void btnCheckCookie _ Click(对象发送者,事件参数e){ if(请求。Cookies['UserInfo']!=null){响应。Write('Cookie存在,' request.cookies ['userinfo'])。值);} else {Response。Write('Cookie不存在');}}页面代码:复制代码如下: asp: button id=' btnremovokie ' run at=' server ' text=' delete cookie '/asp: button id=' btncheckCookie ' run at=' server ' text=' check Cookie '/运行代码测试,点击删除按钮会发现Cookie存在,如下图:

这是为什么?很明显,cookie被删除了,那为什么不能删除呢?让我们看一下的HttpCookieCollection。NET实现源代码的复制。代码如下: public void remove(字符串名称){if (this。_回应!=null) { this。_响应。beforokiecollectionchange();}这个。RemoveCookie(名称);如果(这个。_回应!=null) { this。_响应。OnCookieCollectionChange();}}此操作将删除HttpCookieCollection集合中的cookies。服务器向客户端传输数据时,不会包含服务器上已删除的cookie的任何信息,浏览器也不会对其进行任何更改(remove方法只是阻止服务器向客户端发送已删除的cookie,与cookie是否留在客户端无关)。因此,无法删除cookie。那么,如果我们想删除cookie,应该怎么做呢?将删除cookies的代码更改为以下语句:按如下方式复制代码:IF(请求。cookies ['userinfo']!=null){响应。cookie[' UserInfo ']。Expires=DateTime。现在. AddDays(-1);} response.write('脚本类型=\ ' text/JavaScript ' alert(\ ' Cookie已成功删除!\');/script ');我们再次运行程序并测试:

好吧。Cookie已被删除。通过将cookie的过期时间设置为负数来强制cookie过期。我们可以达到我们需要的效果。自回应。Cookies.Remove不能达到我们需要的,为什么微软还保留它?因为CookieCollection实现了ICollection接口,所以romove是必须实现的方法,虽然实际价值不大。romove的集合也应该是这样实现的,但是微软在写MSDN的时候,描述的太不清晰了,给我们带来了很多麻烦。

版权声明:ASP的原因 NET的回应 Cookies . Remove无法删除COOKIE是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。