ASP.NET MVC действительно отключается с помощью проверки подлинности с помощью форм
У меня есть действие выхода на контроллер как таковое:
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();
}
Тем не менее, x, y, a и b, все верно. Поэтому, когда мое представление отображается, оно по-прежнему ведет себя так, как будто пользователь вошел в систему. Может ли кто-нибудь предоставить решение и/или объяснение?
Ответы
Ответ 1
FormsAuthentication.SignOut()
удаляет файл cookie аутентификации, поэтому вам нужно перенаправить его, вместо того, чтобы возвращать представление, чтобы клиент был уведомлен:
public ActionResult Logoff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index");
}
Теперь в действии Index
пользователь больше не будет аутентифицирован.