在主页的页面加载中,我设置了一个这样的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过期或被删除。所以我写了: - Seesion.Abandon();
现在即使我退出后,当我重新登录主页时...
第Request.Cookies["Administrator"]
行不是空的。
奇怪...!请告诉我这是什么原因和解决方案。
答案 0 :(得分:10)
您无法直接删除用户计算机上的Cookie。但是,你 可以通过设置来指示用户的浏览器删除cookie cookie的过期日期到过去的日期。下次用户制作时 请求设置cookie的域或路径中的页面 浏览器将确定cookie已过期并将其删除。
你可以这样做:
if (Request.Cookies["Administrator"] != null)
{
HttpCookie myCookie = new HttpCookie("Administrator");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
}
答案 1 :(得分:7)
您必须指定过去的过期日期才能删除特定Cookie:
HttpCookie myCookie = new HttpCookie("Administrator");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
更多信息可以在这篇msdn文章中找到:
答案 2 :(得分:6)
您可以尝试使用
Seesion.Abandon();
Response.Cookies.Clear();
或者
YourCookies.Expires = DateTime.Now.AddDays(-1d);
链接:http://msdn.microsoft.com/en-us/library/ms178195%28v=vs.100%29.aspx
答案 3 :(得分:4)
在我看来,你的行
cookie.Expires = DateTime.Now.AddDays(-1);
应该立即使你的cookie过期。
如果你输错了那么好消息!您可以通过设置过去的到期日期来使您的cookie过期。