I have a logoff action on a controller as so:
public ActionResult Logoff() { var x = Request.IsAuthenticated; var y = User.Identity.IsAuthenticated; FormsAuthentication.SignOut(); Session.Abandon(); var a = Request.IsAuthenticated; var b = User.Identity.IsAuthenticated; return View(); }
However, x, y, a, and b, are all true. So when my view renders, it still behaves as if the user is logged in. Can someone please provide a solution and/or explanation?
Removes the forms-authentication ticket from the browser. public: static void SignOut();
You first need to Clear the Authentication Cookie and Session Cookie by passing back empty cookies in the Response to the Logout. public ActionResult LogOff() { FormsAuthentication. SignOut(); Session. Clear(); // This may not be needed -- but can't hurt Session.
FormsAuthentication.SignOut()
removes the authentication cookie, so you need to redirect after it instead of returning a view so that the client is notified:
public ActionResult Logoff() { FormsAuthentication.SignOut(); return RedirectToAction("Index"); }
Now in the Index
action the user will no longer be authenticated.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With