Question

J'ai une action de fermeture de session sur un contrôleur comme ceci:

    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();
    }

Cependant, x, y, a et b, sont toutes vraies. Alors, quand mon avis rend, il se comporte toujours comme si l'utilisateur est connecté. Quelqu'un peut-il s'il vous plaît fournir une solution et / ou une explication?

Était-ce utile?

La solution

FormsAuthentication.SignOut() supprime le cookie d'authentification, de sorte que vous devez rediriger après au lieu de retourner une vue afin que le client est informé:

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

dans l'action Index l'utilisateur ne sera plus authentifié.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top