Conversion d'un site ASP.NET à une seule base de données en multi-locataires - Dilemme des rôles et des rôles

StackOverflow https://stackoverflow.com/questions/483414

Question

Je suis en train de changer un site Web SQL DB unique (ASP.NET/VB.NET) en une application multi-locataires, où chaque client a sa propre base de données.

Dans l'ancien site, tous les rôles, identifiants et fournisseurs ASP étaient dirigés vers la base de données unique.

Maintenant que nous avons plusieurs bases de données, je me demande quelle serait la meilleure architecture / technique à utiliser. Il existe une base de données qui configure les clients hébergés, telle que le nom de la société, divers paramètres (qui se trouveraient normalement dans un fichier web.config) et la chaîne de connexion à leur base de données de clients hébergés.

Devrions-nous avoir tous les membres & amp; des rôles dans la base de données unique qui configure les locataires ou avons-nous un membre & amp; rôles dans chaque base de données de locataires? L'option 2 semble délicate, car je pense qu'ASP.NET n'aime qu'un seul ensemble de RoleProviders défini dans le fichier web.config.

Quelqu'un at-il déjà essayé ou obtenu des recommandations?

Était-ce utile?

La solution

Si vous utilisez le modèle d’adhésion ASP.Net avec les fournisseurs intégrés, vous pouvez les placer dans une seule base de données, comme vous l’avez indiqué.

Une option, et je n'ai pas essayé, consiste à définir dans votre fichier web.config un fournisseur pour chaque client hébergé. Cela permettrait à chaque locataire d’avoir sa propre base de données d’adhésion et d’éviter les collisions de noms d’utilisateur entre les locataires (s’il s’agit là d’une exigence).

Autres conseils

Vous devriez pouvoir configurer la chaîne de connexion à la base de données d’appartenance ASP.NET au moment de l’exécution. Ce fil comporte quelques options, notamment un fournisseur d'appartenance personnalisé ou une modification de la valeur au début dans le cycle de vie de la demande via Global.asax.cs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top