J'ai besoin de mettre en œuvre flexible ET simple (si une telle chose existe) et en même temps utiliser des moyens intégrés si possible
Jusqu'à présent, j'ai mis en place MembershipProvider et RoleProviders. C'est cool mais où dois-je aller ensuite?
Je sens que j'ai besoin d'ajouter le terme "Privilège" et de coder en dur ceux de l'application. Les utilisateurs configureront des rôles pour ajouter des privilèges aux rôles et attribuer des rôles aux utilisateurs.
Est-ce que cela ressemble à un bon modèle? Dois-je penser à ajouter des privilèges au niveau de l'utilisateur en plus de les ajouter aux rôles? Je pourrais mais j'envisage des problèmes avec la configuration (confuse) et le support suivant.
Si je ne le fais pas et que certains utilisateurs spécifiques auront besoin de privilèges moindres - l'administrateur devra créer un autre rôle, etc.
Une solution miracle pour un système comme celui-ci? Et pourquoi Microsoft n'est pas allé plus loin que les fournisseurs d'adhésion et de rôle?
Autre idée: laisser les rôles en tant que détenteurs de "privilèges" et les coder en dur. Ensuite, je peux coder pour ces rôles dans l'application en utilisant toutes les balises / attributs disponibles, etc. - tous Microsoft.
Ajouter une nouvelle entité "Groupe" et créer une relation comme celle-ci
- Utilisateurs
- Groupes d'utilisateurs
- Groupes
- Groupes de rôles
- Les rôles
De cette façon, je peux collecter des rôles en groupes et affecter ces groupes aux utilisateurs. Sonne bien et correspond à d'autres modèles de logiciels. Mais je ne peux pas vraiment implémenter des choses dans RoleProvider comme:
- AddUsersToRoles
- RemoveUsersFromRoles
Et certaines choses n'ont plus vraiment de sens car elles seront codées en dur
- DeleteRole
- CreateRole
la source
IPrincipal
àIClaimsPrincipal
quand vous voulez faire des vérifications de réclamation. Vous écrirez beaucoup de votre propre code si vous souhaitez l'intégrer avec (par exemple) l'authentification par formulaire, mais cela peut évidemment être fait (selon le lien).