Pergunta

Eu tenho uma ação de logoff em um controlador como assim:

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

No entanto, x, y, a e b, são verdadeiros. Então, quando minha visão se renderiza, ela ainda se comporta como se o usuário estivesse conectado. Alguém pode fornecer uma solução e/ou explicação?

Foi útil?

Solução

FormsAuthentication.SignOut() Remove o cookie de autenticação, então você precisa redirecioná -lo depois dele, em vez de devolver uma visualização para que o cliente seja notificado:

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

Agora no Index Ação O usuário não será mais autenticado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top