Escolar Documentos
Profissional Documentos
Cultura Documentos
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 décima terceira parte do artigo veremos como retornar e exibir todas as roles existentes usando o
Identity.
Nosso objetivo agora será obter as roles existentes na tabela AspNetRoles e exibir em uma página para a consulta do
usuário. Lembrando que atualmente temos apenas uma role, a role Admin, criada no artigo anterior.
Para poder obter as roles vamos usar a propriedade Roles da classe RoleManager que retorna uma lista de todos os
objetos IdentityRole.
A seguir vamos passar a lista destes objetos para a nossa view para exibição.
using FuncionariosWeb.ViewModels;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
namespace FuncionariosWeb.Controllers
{
public class AdministrationController : Controller
{
private readonly RoleManager<IdentityRole> roleManager;
[HttpGet]
public IActionResult ListRoles()
{
var roles = roleManager.Roles;
return View(roles);
}
...
}
Para isso clique com o botão direito sobre a pasta Administration e selecione a opção Add->New Item e a seguir clique
em Razor View informando o seu nome.
@model IEnumerable<IdentityRole>
@{
ViewBag.Title = "Todas as Roles";
}
<h1>Roles</h1>
@if (Model.Any())
{
<a class="btn btn-primary mb-3" style="width:auto" asp-action="CreateRole"
asp-controller="administration">Nova Role</a>
www.macoratti.net/20/06/aspc_crident14.htm 1/3
11/09/2020 ASP .NET Core 3.1 - Usando o Identity de cabo a rabo - XIV
foreach (var role in Model)
{
<div class="card mb-3">
<div class="card-header">
ID : @role.Id
</div>
<div class="card-body">
<h5 class="card-title">@role.Name</h5>
</div>
<div class="card-footer">
<a href="#" class="btn btn-primary">Editar</a>
<a href="#" class="btn btn-danger">Deletar</a>
</div>
</div>
}
}
else
{
<div class="card">
<div class="card-header">
Não existem roles
</div>
<div class="card-body">
<h5 class="card-title">
Use o botão abaixo para criar uma role
</h5>
<a class="btn btn-primary" style="width:auto"
asp-controller="administration" asp-action="CreateRole">
Criar Role
</a>
</div>
</div>
}
Neste código verificamos se existem roles e as exibimos, caso contrário exibimos um aviso ao usuário com a opção para
criar uma nova role.
Agora vamos fazer um ajuste no método Action CreateRole HttPost do controlador AdministrationController, de forma
que se uma role for criada com sucesso iremos redirecionar o usuário para o método Action ListRoles:
...
[HttpPost]
public async Task<IActionResult> CreateRole(CreateRoleViewModel model)
{
if (ModelState.IsValid)
{
IdentityRole identityRole = new IdentityRole
{
Name = model.RoleName
};
if (result.Succeeded)
{
return RedirectToAction("ListRoles", "Administration");
}
www.macoratti.net/20/06/aspc_crident14.htm 2/3
11/09/2020 ASP .NET Core 3.1 - Usando o Identity de cabo a rabo - XIV
Assim já estamos exibindo as roles existentes agora precisamos implementar a edição e a exclusão das roles.
Referências:
www.macoratti.net/20/06/aspc_crident14.htm 3/3