好吧,所以我真的认为我这样做是正确的,但饼干没有被清除.
Session.Clear();
HttpCookie c = Request.Cookies["MyCookie"];
if (c != null)
{
c = new HttpCookie("MyCookie");
c["AT"] = null;
c.Expires = DateTime.Now.AddDays(-1);
Request.Cookies.Add(c);
}
return RedirectToAction("Index", "Home");
Run Code Online (Sandbox Code Playgroud)
当重定向发生时,它再次找到cookie并继续前进,就好像我从未注销过一样.有什么想法吗?
我需要手动删除身份验证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
Run Code Online (Sandbox Code Playgroud)
这些命令都不起作用.事实上,响应cookie是空的,请求cookie包含我想删除的cookie,当执行以下命令它不再包含我删除的cookie但在浏览器中cookie仍然存在,我能够做的事情授权用户甚至可以退出.