Preciso implementar flexível E simples (se existir) e, ao mesmo tempo, utilizar meios embutidos, se possível
Até agora, tenho MembershipProvider e RoleProviders implementados. Isso é legal, mas para onde eu vou a seguir?
Eu sinto que preciso adicionar o termo "Priviledge" e codificar os que estão dentro do aplicativo. Os usuários configuram funções para adicionar privilégios às funções e atribuir funções aos usuários.
Isso soa como um bom modelo? Devo pensar em adicionar privilégios no nível do usuário, além de adicioná-los às funções? Eu poderia, mas imagino problemas com a instalação (confusa) e o suporte a seguir.
Se eu não fizer isso, e alguns usuários específicos precisarão de privilégios menores - o administrador precisará criar outra função, etc.
Alguma bala de prata para um sistema como este? E por que a Microsoft não foi além dos provedores de associação e função?
Outra idéia: deixe as funções como detentoras de "privilégios" e codifique-as. Então eu posso codificar para essas funções dentro do aplicativo usando todas as marcações / atributos disponíveis, etc. - toda a Microsoft.
Adicione uma nova entidade "Grupo" e crie um relacionamento como este
- Comercial
- Grupos de usuários
- Grupos
- RoleGroups
- Funções
Dessa forma, eu posso coletar Funções em grupos e atribuir esses grupos aos Usuários. Parece ótimo e combina com outros padrões de software. Mas não consigo realmente implementar coisas no RoleProvider como:
- AddUsersToRoles
- RemoveUsersFromRoles
E algumas coisas realmente não fazem mais sentido porque serão codificadas
- DeleteRole
- CreateRole
fonte
IPrincipal
paraIClaimsPrincipal
quando você quer fazer verificações de reivindicação. Você escreverá muito do seu próprio código se quiser ajustá-lo (por exemplo) à Autenticação de Formulários, mas obviamente isso pode ser feito (conforme o link).