J'utilise plusieurs fournisseurs de rôles, le fournisseur SQL standard plus un fournisseur personnalisé. Inside Global.asax - RoleManager_GetRoles Je crée un RolePrincipal pour les utilisateurs qui doivent utiliser mon fournisseur personnalisé avec le nom du fournisseur défini pour mon fournisseur personnalisé, et laisser les autres utilisateurs être traités comme d'habitude.Roles.GetRolesForUser appelle le fournisseur de rôle par défaut uniquement?
Cela fonctionne presque, asp.net permet d'accéder aux pages protégées via web.config et appelle mon fournisseur pour obtenir la liste des rôles. Cependant, lorsque j'appelle Roles.GetRolesForUser()
dans mon code, il semble que j'appelle le fournisseur de rôle par défaut, pas mon fournisseur personnalisé. Si je définis mon fournisseur personnalisé comme étant la valeur par défaut, il est invoqué, mais seulement il est invoqué. J'ai travaillé autour d'elle en énumérant plutôt les fournisseurs de rôle et en appelant GetRolesForUser()
sur le fournisseur avec un nom correspondant à RolePrincipal, mais il me semble que Roles.GetRolesForUser()
devrait le faire par défaut.
Ai-je raté quelque chose?
Cela a du sens et correspond au comportement que je vois. Malheureusement, je fais face à une grande quantité de code préexistant qui utilise Roles.GetRolesForUser(). Il est temps pour un ré-affacturage je suppose. Merci. – Eddie
Pas de problème. Si vous obtenez des réponses qui vous aident, vous devriez vous sentir libre de les augmenter. ;) – womp