Bonjour à tous.
J'ai "pleins" de projets (sites multiples, web services, ...) dans "pleins" de base de données différentes.
Chaque base de données possèdent son propre "Membership". (avec l'ensemble des tables associées)
Il s'agit à 99% de AspNetSqlMembershipProvider.
Il est défini dans le web.config de chaque projet et possède sa chaîne de connexion (qui est différente d'un projet à l'autre)
J'ai maintenant une application de gestion à faire, elle doit être capable de gérer les utilisateurs des différentes applications.
Cette application est un web service WCF qui dispose de sa propre base de données et de sa propre logique d'authentification.
Mon WS doit permettre de gérer les droits des projets.
Par exemple : "Ajouter l'utilisateur "Toto" au projet "Truc" dont la chaîne de connexion est "<chaine>".
Ajouter le Role "Admin" à l'utisateur "Machin" dans le projet "UsineAGaz" dont la chaîne est "<ma_super_chaine>.
Et là, j'ai un problème de logique. Comment un WS qui possèdent son propre Membership peut créer un utilisateur avec un autre MemberShip configuré dynamiquement considérant que la classe Membership est statique ?
Pour essayer d'être plus clair :
1) J'ai des projet associés à des clients. Chaque projet est indépendant et dispose de sa propre base de données incluant les tables de MemberShip
2) J'ai un WS de gestion qui doit permettre d'effectuer certaines opérations sur les tables des Membership des bases "clients". Ce WS dispose de son propre MemberShip.
J'ai donc un projet qui possède un Membership "en dur" utilisé pour gérer les droits du projet et un autre, configuré dynamiquement, pour effectuer des opération sur une base de données déterminée lors de l'utilisation.
Très concrètement, comment écrire :
2) Membership.CreateUser(email, password, email) avec Membership branché sur une chaîne variable. (c'est une entrée de mon WS avec une liste non finie de valeur)
J'ai essayé d'être clair...
Partager