为了测试,我将domain设为localhost,本机调试时,可生成cookie,也可删除cookie。部署到服务器后,我将代码中的domain更改为了passport.com,登录后能正确生成cookie,却永远无法删除cookie。
代码如下:            HttpCookie cookie = new HttpCookie("TokenCert");
            cookie.Expires = DateTime.Now.AddDays(-1);
            Response.AppendCookie(cookie);
            Response.Flush();
这个cookie只能等到它自然过期才会自动消失。求救啊!!!

解决方案 »

  1.   


    删除 Cookie(即从用户的硬盘中物理移除 Cookie)是修改 Cookie 的一种形式。 
    由于 Cookie 在用户的计算机中,因此无法将其直接移除。 
    但是,可以让浏览器来为您删除 Cookie。 
    该技术是创建一个与要删除的 Cookie 同名的新 Cookie, 
    并将该 Cookie 的到期日期设置为早于当前日期的某个日期。 
    当浏览器检查 Cookie 的到期日期时,浏览器便会丢弃这个现已过期的 Cookie。 
    下面的代码示例演示删除应用程序中所有可用 Cookie 的一种方法: HttpCookie aCookie;
    string cookieName;
    int limit = Request.Cookies.Count;
    for (int i = 0; i < limit; i++)
    {
    cookieName = Request.Cookies[i].Name;
    aCookie = new HttpCookie(cookieName);
    aCookie.Expires = DateTime.Now.AddDays(-1);
    Response.Cookies.Add(aCookie);
    }
      

  2.   

    我也是这样认为的,不过事实是如此啊,难道和我部署在本地IIS上,改了host有关吗,看来有必要部署到真实环境下的服务器测试下,这删除cookie也太奇怪了。
      

  3.   

    你的cookie同时设定域名试试