Étant donné que l'interface RoleProvider ne semble traiter les rôles que comme de simples chaînes, je me demande s'il existe une façon non hacker d'appliquer une valeur facultative pour un rôle pour chaque utilisateur. . Notre système de gestion des connexions actuel implémente des rôles en tant que paires clé-valeur, où la partie valeur est facultative et généralement utilisée pour clarifier ou limiter les autorisations accordées par un rôle. Par exemple, un rôle 'éditeur' peut contenir un utilisateur 'barry', mais pour 'barry' il aura une valeur optionnelle 'raptors', que le système interpréterait comme signifiant que Barry ne peut éditer que les articles déposés sous la catégorie des «rapaces».Extension des fournisseurs de rôle ASP.NET
J'ai vu ailleurs une suggestion de créer simplement des rôles délimités supplémentaires, tels que 'editor.raptors' ou quelque chose comme ça. Cela ne va pas vraiment être idéal parce que cela gonflerait énormément le nombre de rôles, et je peux dire que ça va être très difficile à vendre pour remplacer notre implémentation actuelle (qui est aussi très loin d'être idéale, mais qui a l'avantage d'être personnalisée fait pour travailler avec notre base de données utilisateur).
Je peux déjà dire que la méthode de concaténation mentionnée ci-dessus va impliquer beaucoup de fastidieux dédoublement de chaînes et d'appariement partiel.
Y a-t-il un meilleur moyen?
EDIT: Mon objectif initial était d'utiliser davantage de fonctionnalités ASP.NET intégrées. Par exemple, contrôlez l'accès via les éléments <authorization/>
dans Web.config. Pour autant que je puisse le voir, cela nécessite de mettre en place des rôles eux-mêmes. Le concept d'auths de notre système actuel semblait très bien aller au-delà de cette limitation.
des questions de réponse à mnemosyn
- Oui. Nous disposons d'une base de données centrale pour les utilisateurs, les applications et leurs autorisations. C'est un système de base et il n'y a pas de problème.
- Actuellement, notre système n'est pas hiérarchique, et cela demande beaucoup d'efforts. Lorsqu'une application est créée, un ensemble d'autorisations est défini (par exemple, 'admin', 'user', 'poweruser', 'gatekeeper', 'keymaster', etc.). Les utilisateurs sont ensuite associés à ces autorisations avec la valeur facultative pour une combinaison unique d'utilisateur et d'autorisation (spécifique à l'application).
- Pouvez-vous élaborer sur ces «catégories» dont vous parlez?
J'avais mis à jour ma question pour répondre à certains des points que vous avez soulevés. –