4

Je crée une application multi-tenant avec ASP.NET MVC et rencontre un problème avec la validation des utilisateurs.Fournisseur d'appartenances multi-locataires ASP.NET MVC

Situation

Je:

Table -a avec l'utilisateur (ID, nom, prénom, e-mail) Ce tableau est fait, de sorte que des utilisateurs qui sont enregistrés dans deux locataires n » Je dois me reconnecter.

-une table avec Tentantuser (ID, TenantID, UserID (FK à l'utilisateur de la table), UserName, nom de connexion, mot de passe, actif) Cette table contient de login en mot de passe pour un locataire.

Exemple:

  • UserX est enregistré dans TenantA et TenantB
  • enregistre UserX dans le TenantA, avec son login et mot de passe pour TenantA
  • système vérifie ou login et mot de passe sont corrects dans la table TenantUser
  • Le système valide UserX dont ID utilisateur correspond à l'ID dans la table Utilisateur
  • UserX va à TenantB et i s automatiquement connecté

Mon problème:

Comment puis-je créer un fournisseur personnalisé donc je peux vérifier le login & mot de passe dans un locataire? Par exemple:

public abstract bool ValidateUser(string username,string password); 

Comment puis-je dire à mon fournisseur sur lequel l'utilisateur est locataire?

quelque chose comme Comment puis-je changer cela:

public overrides bool ValidateUser(string username,string password, string tenant); ? 

Ou ce qui est une autre façon de résoudre ce problème?

Répondre

4

Le paramètre nom de l'application peut être utilisé pour identifier le client a/b, qui peut être spécifié dans le fichier de configuration. Ensuite, dans votre fournisseur personnalisé, vous pouvez l'utiliser pour extraire la bonne entrée pour le locataire. Ne pas entrer dans la configuration de méthodes personnalisées; ce serait une douleur.

HTH.

+0

Thx. Je comprends que les méthodes personnalisées ne sont pas la bonne façon. Les locataires sont créés à la volée, comment puis-je le spécifier dans le fichier de configuration? Ou puis-je le stocker ailleurs? – Masna

+0

Si vous développez un fournisseur personnalisé, vous pouvez facilement le stocker ailleurs. Il peut s'agir de paramètres de l'application, d'une section de configuration personnalisée, d'un objet statique ou d'une ressource externe comme le fichier DB/XML ... pour n'en citer que quelques-uns :-) Cela dépend de la façon dont vous le souhaitez. .. Sans plus de détails, je ne peux pas aider avec plus de détails. –

Questions connexes