2
respostas

Adicionar colunas no AspNetRole

Para incluir uma nova coluna na tabela de Roles do Identity, eu criei um novo modelo conforme abaixo.

    public class RolesAplicacao : IdentityRole
    {
        public string GrupoRole { get; set; }
    }

Ele foi criado corretamente, e consta no banco de dados.

Para separar os grupos de usuário, no arquivo "RolesNomes.cs" eu criei novas classes separadas por RolesMaster, RolesAdministrativas e RolesUsuarios, onde as Administrativas seriam: Moderador, Supervisor. E as RolesUsuarios seriam Membro, MembroPrata, MembroOuro . A RoleMaster seria a do Administrador Geral.

Como faço para que nessa etapa da criação das roles, no Startup, eu consiga também preencher essa coluna nova?

        private void CriarRoles(IdentityDbContext<UsuarioAplicacao> dbContext)
        {
            using (var roleStore = new RoleStore<IdentityRole>(dbContext))
            using (var roleManager = new RoleManager<IdentityRole>(roleStore))
            {
                if (!roleManager.RoleExists(RolesMaster.ADMINISTRADOR))
                    roleManager.Create(new IdentityRole(RolesMaster.ADMINISTRADOR));
                if (!roleManager.RoleExists(RolesAdministrativas.MODERADOR))
                    roleManager.Create(new IdentityRole(RolesAdministrativas.MODERADOR));
            }
        }
2 respostas

Consegui da forma abaixo:

public class RolesAplicacao : IdentityRole
{
    public string GrupoRole { get; set; }


    public RolesAplicacao() { }
    public RolesAplicacao(string roleName, string group) : base(roleName)
    {
        GrupoRole = group;
    }


}

            if (!roleManager.RoleExists(RolesUsuarios.NOVOUSUARIO))
                roleManager.Create(new RolesAplicacao(RolesUsuarios.NOVOUSUARIO, "Gestao"));

Olá Rafael!

Isso é ótimo que tenha conseguido resolver esse problema! Melhor ainda é ter compartilhado a solução para as pessoas que podem ter o mesmo problema!

Muito obrigado pela colaboração e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software