Acredito que faltou no curso, algo que informe como deslogar o usuário do sistema. Como faço isso?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Acredito que faltou no curso, algo que informe como deslogar o usuário do sistema. Como faço isso?
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");
}
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!