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

C# 如何在asp.net MVC 4中手动删除cookie,c#,asp.net-mvc,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 FormsAu

我需要手动删除身份验证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仍然存在,即使在注销后,我也可以执行授权用户可以执行的操作

试试看:

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

有关的详细信息。

c.Expires=DateTime.Now.AddDays(-1)
这不会立即清除cookies

使用这个:
c.Expires=DateTime.Now.AddSeconds(1)

这将立即清除cookie。

我曾手动设置身份验证cookie,但名称与表单身份验证cookie名称不同。在我将其更改为身份验证后,SignOut()实际上起了作用。不管怎样,谢谢这能回答你的问题吗?