我正在尝试在我的MVC应用程序中实现表单授权,并且在大多数情况下它工作正常。但是,当我触发我的Logout()方法时没有任何反应。我有
System.Web.HttpContext.Current.User.Identity.IsAuthenticated
在我的主页上,所以我可以看到它之后仍然登录。 以下是我的退出方法。
public ActionResult Logout(){
TempData.Clear();
FormsAuthentication.SignOut();
Session.Abandon();
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);
HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
cookie2.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie2);
HttpContext.User =new GenericPrincipal(new GenericIdentity(string.Empty), null);
return RedirectToAction("Index", "Home");
}
---编辑---
我添加了HttpContext.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
正如DGibbs推荐的那样,但问题仍然存在。