www.cftea.com

认认真真写点 Cookie-删除 Cookie

ITPOW2016/11/28 11:28:49

Response.Cookies.Remove()、Response.Cookie.Clear() 能删除 Cookie 吗?

这个只是说当前被干掉的 Cookie 不要再输出到客户端了。

但并不是说删除客户端上已经存在的 Cookie。

如何删除 Cookie

Response.Cookies["cookieName"].Expires = DateTime.Now.AddDays(-1);

1、如果 cookieName 对应的 Cookie 不存在,不会报错,因为这里是 Response,并不是 Request,Response 只是告诉客户端,按照此 Collection 来处理。

2、如果 cookieName 相同,但 Path 不同,会被当作两个 Cookie 对待,上述代码就只能删除 Path 为“/”的 Cookie

要指定路径,应该这样:

HttpCookie c = new HttpCookie("c", "");
c.Path = "/path";
c.Expires = DateTime.Now.AddDays(-1);

Response.Cookies.Add(c3);

不过学霸更喜欢这样写:

string value = string.Empty;
if (Request.Browser["supportsEmptyStringInCookieValue"] == "false")
{
    value = "NoCookie";
}

HttpCookie c = new HttpCookie("c", value);
c.Path = "/path";
c.Expires = DateTime.Now.AddDays(-1);

Response.Cookies.Add(c3)

<<返回首页<<