Domanda

Ho un azione di disconnessione su un controller come:

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

Tuttavia, x, y, a, e b, sono tutte vere. Così, quando mio avviso rende, si comporta ancora come se l'utente è connesso. Qualcuno può fornire una soluzione e / o spiegazione?

È stato utile?

Soluzione

FormsAuthentication.SignOut() rimuove il cookie di autenticazione, quindi è necessario reindirizzare dopo che invece di restituire la vista in modo che il cliente viene avvisato:

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

Ora nell'azione Index l'utente non sarà più essere autenticato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top