0

我不知道我在尝试删除 cookie 时做错了什么……有人可以帮忙吗?这是我试图删除 cookie 的代码。

if (Request.Cookies["RememberUser"] != null)
{  
    HttpCookie objCookie = Request.Cookies["RememberUser"];
    objCookie.Expires = DateTime.Now.AddDays(-1d);                        
    Response.Cookies.Add(objCookie);
}

上面的代码删除cookie是正确的,由于某种原因这不起作用......

即使我尝试使用 Response.Cookies.Set(objCookie);.

4

1 回答 1

0

上面的代码是有效的。我很惊讶为什么你不能删除。问题可能出现在你的创建 cookie 代码中。

    var cookie = this.Request.Cookies["user"];
    if (cookie == null)
    {
        cookie = new HttpCookie("user");
        cookie.Path = "/";
        cookie.Value = "123";
        this.Response.Cookies.Add(cookie);
    }
    else
    {
        cookie.Expires = DateTime.Now.AddDays(-1d);
        this.Response.Cookies.Add(cookie);
    }

第一次访问时没有来自服务器的 cookie 和响应标头。

响应标头:

Date: Sun, 08 Apr 2012 02:18:37 GMT

X-AspNet-Version: 4.0.30319

Set-Cookie: user=123; path=/

使用来自服务器的 cookie 和响应标头再次访问。

响应标头:

Date: Sun, 08 Apr 2012 02:19:32 GMT

X-AspNet-Version: 4.0.30319

Set-Cookie: user=123; expires=Sat, 07-Apr-2012 02:19:32 GMT; path=/

和请求标头:

GET /
Cookie: user=123
.....

您可以使用firebugfirefox 或fiddler软件来跟踪响应和请求,看看为什么不能删除 cookie。祝你好运。

于 2012-04-08T02:24:39.510 回答