Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como deslogar?

Acredito que faltou no curso, algo que informe como deslogar o usuário do sistema. Como faço isso?

4 respostas

Olá Henrique.

Uma forma de fazer isso é zerando os valores de Session que você atribui quando faz login. Não acompanhei ainda o curso de ASP.NET MVC 5 daqui, mas basicamente você pode pegar as sessions e atribuir valor nulo para elas. Provavelmente você sempre as verifica para manter o usuário em uma página que exige autenticação, caso contrário redireciona para a tela de login.

Usei o método abaixo e funcionou (achei na internet), não sei se é o ideal... Alguém pode validar?

 public ActionResult LogOut()
        {
            Session.Abandon(); // it will clear the session at the end of request
            return RedirectToAction("Login");
        }
solução!

Usa esses em conjunto pra garantir:


[HttpPost]
public ActionResult LogOut()
{
    FormsAuthentication.SignOut();
    Session.Clear();
    Session.RemoveAll();
    Session.Abandon();
    return RedirectToAction("Login");
}

Lembrando que para utilizar o FormsAuthentication, tem que ter implementado a interface IFormsAuthentication.

Tem uns métodos mais elaborados com limpeza de cookies também. Dê uma olhada: https://stackoverflow.com/questions/412300/formsauthentication-signout-does-not-log-the-user-out

Muito bom, obrigado Bruno!