Olá, depois de assistir os cursos de ASP.NET Identity e criar uma pequena aplicação para testar tais funcionalidades e etc, resolvi me aprofundar mais um pouco e resolvi criar um meio de controlar as permissões individuais. Ex.:
Tenho as permissões: PodeCriarTopico, PodeMoficarTopico, PodeDeletarTopico, PodeVerTopico, PodeCriarUsuario, PodeInativarUsuario, PodeModificarUsuario, PodeVerUsuarios e etc...
E os grupos Administrador, Moderador e usuário (sendo que eles podem ser criados conforme a necessidade do usuário) que possuem as permissões pertinentes.
Pesquisei na internet porém todas as formas levavam em consideração que as Roles eram as permissões sendo que Role seria uma tradução para Cargo ou Grupo e posteriormente a manutenção poderia se tornar meio confusa. Pesquisando mais sobre o identity e lembrando das aulas das aulas quando ele mostra as informações dos metadados do identity a classe que representa o UsuarioAplicacao herda da classe IdentityUser<TKey, TLogin, TRole, TClaim> e Olha só! Uma implementação genérica de TRole! Indo um pouco mais afundo se tem o seguinte
public class IdentityUser<TKey, TLogin, TRole, TClaim> : IUser<TKey>
where TLogin : IdentityUserLogin<TKey>
where TRole : IdentityUserRole<TKey>
where TClaim : IdentityUserClaim<TKey>
Ou seja poderia ser criada uma classe que implementa a TRole certo? Pensou errado :/
Ao analisar a documentação de IdentityUserRole nas primeiras linhas se tem o seguinte:
Represents the link between a user and a role.
Ao chegar nesse ponto, descobri que há uma classe chamada IdentityRole que possui uma propriedade chamada Claims.
Gostaria de saber se alguém já realizou uma implementação desse tipo ou se apenas estou viajando e se realmente funciona pois estou apenas em meio de suposições e na documentação não deixa de forma clara o que seria esses claims, teoricamente não haveria necessidade de implementar algo complexo se o Claims representa as reivindicações de cada Role.
Desde já agradeço ! Obrigado!