Comment implémenter la connexion utilisateur multi-locataire à l'aide de l'identité ASP.NET
-
21-12-2019 - |
Question
Je développe une solution multi-locataires et je souhaite utiliser le dernier identité ASP.NET Cadre spécifique spécifiquement le
En gros, j'ai besoin de permettre à deux utilisateurs d'avoir le même nom d'utilisateur, même s'il doit être unique dans un locataire, j'aimerais également utiliser des panneaux externes tels que Twitter, Microsoft, Facebook et Google.
De ce que je peux dire, le cadre n'a pas été conçu avec une multi-location à l'esprit, bien que cela semble permettre une extensibilité.Je préférerais utiliser autant de composants existants que possible, mais pour le moment je pense que je vais devoir abandonner le Cadre d'entité La mise en œuvre et le code tout seul.
Quelqu'un d'autre a-t-il essayé cela et combien ont-ils eu à coder eux-mêmes?
La solution
J'ai maintenant une solution de travail que j'ai partagée dans un référentiel GitHub:
https://github.com/jskimming/aspnet.identity.entityframework.multitance
L'extensibilité requise pour prendre en charge la multi-location n'est pas possible avec la version 1.0.0 de Microsoft.aspnet.entity.entityframework (du moins pas sans beaucoup de travail personnalisé), mais est disponible dans la version 1.1 Alpha actuellement disponible via le packages de pack de pages Web ASP.NET de 1400eet .
J'ai décidé de libérer ce que j'ai produit en tant que package Nuget aspnet.Identitity.entityFramework .Multitanant , comme indiqué qu'il nécessite actuellement le Packages de packs de piles Web ASP.NET Nupp.net .
J'ai fourni deux sites simples qui utilisent le package pour permettre la multi-location:
- Mise en œuvre de la vanille qui est le projet Standard MVC5 Modèle qui utilise une chaîne clés primaire.
- Les changements nécessaires à la fourniture de plusieurs locaux ont été isolés à ce commettre .
- implémentation de clé primaire entier qui fait quelques Plus de personnalisations pour utiliser les clés primaires entier
- Les changements nécessaires à la fourniture de plusieurs locaux ont été isolés à ce Élever des problèmes que vous trouvez .
Mise à jour
La solution a maintenant été mise à jour pour utiliser la version 2.0 de Microsoft.0"> Microsoft.aspnet.Identitity .Entityframework .
- Les changements nécessaires à la fourniture de plusieurs locaux ont été isolés à ce Élever des problèmes que vous trouvez .
Autres conseils
Ouais, nous avons explicitement laissé cela comme un scénario d'extensibilité.Vous devriez être capable de le faire via des propriétés d'Usermanager sur le remplacement et la mise en œuvre de votre propre personnalisé IuSerstore.Bien que vous puissiez également prolonger l'USERSTOPE EF potentiellement et simplement ajouter un télement à votre utilisateur.