问题描述
为了测试,我将domain设为localhost,本机调试时,可生成cookie,也可删除cookie。部署到服务器后,我将代码中的domain更改为了passport.com,登录后能正确生成cookie,却永远无法删除cookie。代码如下:HttpCookiecookie=newHttpCookie("TokenCert");cookie.Expires=DateTime.Now.AddDays(-1);Response.AppendCookie(cookie);Response.Flush();
这个cookie只能等到它自然过期才会自动消失。求救啊!!!
解决方案
解决方案二:
删除Cookie(即从用户的硬盘中物理移除Cookie)是修改Cookie的一种形式。由于Cookie在用户的计算机中,因此无法将其直接移除。但是,可以让浏览器来为您删除Cookie。该技术是创建一个与要删除的Cookie同名的新Cookie,并将该Cookie的到期日期设置为早于当前日期的某个日期。当浏览器检查Cookie的到期日期时,浏览器便会丢弃这个现已过期的Cookie。下面的代码示例演示删除应用程序中所有可用Cookie的一种方法:HttpCookieaCookie;stringcookieName;intlimit=Request.Cookies.Count;for(inti=0;i<limit;i++){cookieName=Request.Cookies[i].Name;aCookie=newHttpCookie(cookieName);aCookie.Expires=DateTime.Now.AddDays(-1);Response.Cookies.Add(aCookie);}
解决方案三:
按道理不应该呀
解决方案四:
我也是这样认为的,不过事实是如此啊,难道和我部署在本地IIS上,改了host有关吗,看来有必要部署到真实环境下的服务器测试下,这删除cookie也太奇怪了。
解决方案五:
你的cookie同时设定域名试试