Asp.net

註銷時刪除 cookie

  • December 29, 2019

在首頁的頁面載入中,我設置了這樣的 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"]仍然不是空的。

奇怪的…!請讓我知道這是什麼原因和解決方案。

你可以試試

Session.Abandon();
Response.Cookies.Clear();

或者也

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

連結:http: //msdn.microsoft.com/en-us/library/ms178195%28v=vs.100%29.aspx

來自MSDN 文件

您不能直接刪除使用者電腦上的 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);
}

引用自:https://stackoverflow.com/questions/12825669