2013-11-26 23 views
20

我需要手動刪除身份驗證cookie(而不是使用FormsAuthentication.SignOut由於某些原因不起作用)。我試過我如何手動刪除在asp.net MVC中的cookie 4

System.Web.HttpContext.Request.Cookies.Remove(cookieName); // for example .ASPXAUTH 
System.Web.HttpContext.Response.Cookies.Remove(cookieName); // for example .ASPXAUTH 
FormsAuthentication.SignOut(); // I don't know why this one does not work 

這些命令都沒有工作。實際上,響應cookie是空的,並且請求cookie包含我想在執行以下命令時刪除的cookie,它不再包含我刪除的cookie,但在瀏覽器中cookie仍然存在,並且我可以做授權用戶可以執行的操作退出。

回答

47

嘗試:在MSDN

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

更多信息。

+0

我以前手動設置身份驗證Cookie,但名稱與表單身份驗證Cookie名稱不同。在我改變它之後FormsAuthentication.SignOut()實際上工作。謝謝反正 – Dimitri

+4

糟糕... http://stackoverflow.com/a/5122611/2436549 – Zafar