Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 注销时删除cookie_Asp.net_Cookies - Fatal编程技术网

Asp.net 注销时删除cookie

Asp.net 注销时删除cookie,asp.net,cookies,Asp.net,Cookies,在主页的pageload上,我设置了如下cookie:- if (abc == true) { HttpCookie cookie = new HttpCookie("Administrator"); cookie.Value = "Admin"; cookie.Expires = DateTime.Now.AddDays(-1); Response.SetCookie(cookie); } 并将cookie用作:- if (Request.Cookies["A

在主页的pageload上,我设置了如下cookie:-

if (abc == true)
{
    HttpCookie cookie = new HttpCookie("Administrator");
    cookie.Value = "Admin";
    cookie.Expires = DateTime.Now.AddDays(-1);
    Response.SetCookie(cookie);
}
并将cookie用作:-

if (Request.Cookies["Administrator"] != null)
{
    if (Request.Cookies["Administrator"].Value == "Admin")
        //some code
}
注销时,我希望此cookie过期或被删除。因此,我写了:-
seision.about()

现在,即使在我注销之后,当我重新登录到主页时。。 行
Request.Cookies[“管理员”]
仍然不是空的

奇怪。。。!请告诉我原因和解决方法。

您可以用

Session.Abandon();
Response.Cookies.Clear();
或者也

YourCookies.Expires = DateTime.Now.AddDays(-1d);

链接:

您必须指定过去的过期日期才能删除特定cookie:

HttpCookie myCookie = new HttpCookie("Administrator");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
更多信息可在本msdn文章中找到:

来自

不能直接删除用户计算机上的cookie。然而,你 可以通过设置 cookie的过期日期为过去的日期。下一次用户进行 请求设置cookie的域或路径中的页面 浏览器将确定cookie已过期并将其删除

您可以这样做:

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

我觉得你的台词

cookie.Expires = DateTime.Now.AddDays(-1);
应该立即使您的cookie过期

如果你只是打错了,那就好消息!您可以通过将过期日期设置为过去,使cookie过期