ASP .NET Core 3.1 - Usando o Identity de cabo a rabo - VI
Hoje vamos continuar a série de artigos mostrando como usar o ASP .NET Core Identiy na versão 3.1 da ASP .NET .Core e do EF Core. |
|
Continuando a quinta parte do artigo veremos como exibir e/ou ocultar os links para login e registro do usuário na barra de navegação e como implementar o Logout do usuário.
Vamos implementar o seguinte:
Para poder fazer isso vamos usar um recurso da ASP .NET Core chamado view injection que permite injetar dependências em uma view usando a palavra-chave @inject.
Vamos então injetar o serviço SignInManager na view _Layout.cshtml e user este serviço para verificar se o usuário esta logado ou não.
Inclua o trecho de código destacado em azul no arquivo _Layout.cshtml:
...
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav ml-auto">
@*Se o usuário esta logado exibir o link de logout*@
@if (SignInManager.IsSignedIn(User))
{
<li class="nav-item">
<form method="post" asp-controller="account" asp-action="logout">
<button type="submit" style="width:auto"
class="nav-link btn btn-link py-0">
Logout @User.Identity.Name
</button>
</form>
</li>
}
else
{
<li class="nav-item">
<a class="nav-link" asp-controller="account" asp-action="register">
Registrar
</a>
</li>
<li class="nav-item">
<a class="nav-link" asp-controller="account" asp-action="login">
Login
</a>
</li>
}
</ul>
... |
Dessa forma agora estaremos exibindo os links para Login e Registro para usuários não logados e o link de Logout para usuários que estiverem logados.
Temos que implementar o método Action Logout no controlador AccountController:
[HttpPost]
public async Task<IActionResult> Logout()
{
await signInManager.SignOutAsync();
return RedirectToAction("index", "home");
}
|
Aqui usamos o método SignOutAsync() da instância de SingInManager para fazer o logout do usuário.
Executando o projeto teremos o seguinte resultado:
No próximo artigo veremos como implementar o login do usuário.
"E Jesus lhe disse: Ninguém, que lança mão do arado e
olha para trás, é apto para o reino de Deus."
Lucas 9:62
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
ASP .NET Core - Implementando a segurança com ... - Macoratti
ASP.NET Core MVC - Criando um Dashboard ... - Macoratti.net
C# - Gerando QRCode - Macoratti
ASP .NET - Gerando QRCode com a API do Google