如何在asp.net MVC 4中手动删除cookie

时间:2013-11-26 13:57:53

标签: c# asp.net-mvc

我需要手动删除身份验证cookie(而不是使用FormsAuthentication.SignOut whcih由于某些原因不起作用)。我试过了

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仍然存在,我能够做的事情授权用户甚至可以退出。

2 个答案:

答案 0 :(得分:61)

尝试:

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

有关MSDN的更多信息。

答案 1 :(得分:0)

myLedStripWrapper.setup(LED_STRIP_COUNT, LED_STIP_PIN); 这不会立即清除Cookie。

使用此命令:c.Expires = DateTime.Now.AddDays(-1); 这将立即清除Cookie。