Вопрос

У меня есть действие логика на контроллере, как так:

    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, все правда. Поэтому, когда мой взгляд оказывает, он все еще ведет себя так, как будто пользователь вошел в систему. Может кто-нибудь, пожалуйста, предоставьте решение и / или объяснение?

Это было полезно?

Решение

FormsAuthentication.SignOut() Удаляет файл cookie аутентификации, поэтому вам нужно перенаправить после него вместо того, чтобы вернуть представление, чтобы клиент был уведомлен:

public ActionResult Logoff()
{
    FormsAuthentication.SignOut();
    return RedirectToAction("Index");
}

Сейчас в Index Действие Пользователь больше не будет аутентифицирован.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top