J'ai deux sites ASP.NET (ils ne peuvent pas s'exécuter dans le même processus) et j'ai besoin de partager l'authentification entre eux. Si un utilisateur est déjà authentifié sur le site A et qu'il se rend ensuite sur le site B, je dois pouvoir partager ces informations avec le site B afin de ne plus demander à l'utilisateur de s'authentifier. La même chose est vraie dans les deux sens. Comment partagez-vous cette information?Partage de l'authentification entre les sites ASP.NET
Répondre
Sont-ils dans le même domaine?
Si vous avez app1.blah.com et app2.blah.com, c'est très facile à faire. Il suffit de définir le domaine et le nom à la même valeur dans les formes section web.config:
<authentication mode="Forms">
<forms loginUrl="login.aspx"
name=".COOKIENAME"
protection="All"
path="/"
domain="blah.com"
timeout="30" />
</authentication>
Un ajouté avantage est que les utilisateurs peuvent se connecter à deux sites et seront toujours authentifiés si elles vont à l'autre un.
Cela fonctionnerait-il si les deux sites tournaient sur des serveurs différents? L'authentification utilise-t-elle des cookies sur le client? Si oui, alors je suppose qu'il regarde pour voir si les domaines correspondent et permet le partage de l'authentification? Cela fonctionnerait-il même s'ils n'étaient pas sur le même domaine mais que vous définissiez le "domain =" comme étant le même? – user31673
Cela fonctionne si elles sont sur des serveurs différents. Oui, il utilise des cookies. Je suis à peu près sûr que cela ne fonctionnera pas si vous définissez le domaine à la même chose, même si elles ne le sont pas. – Stefan
Hmm ... J'ai essayé d'ajouter ceci à mon application MVC et il semble que je me casse complètement. Y at-il quelque chose d'autre qui doit être modifié avec ce truc de configuration? – CodeRedick
Consultez le Windows Communication Authentication Service. Ne traitera pas tout à fait l'authentification unique comme vous le souhaitez, mais cela devrait au moins permettre aux utilisateurs de se connecter à travers le forum avec les mêmes informations d'identification.
Cette idée ne fonctionnera pas dans ce scénario, car je dois utiliser le processus de connexion déjà en place sur le site A. Si l'utilisateur se connecte directement au site B, un service Web est exécuté sur le site A pour s'authentifier. Le vrai problème est quand ils sont déjà authentifiés et changent de sites. – user31673
Sélectionnez un site comme "maître" qui gère toutes les connexions. Nous appellerons ce site A et le site sans connexion B.
Lorsqu'un utilisateur utilise le formulaire de connexion sur A, il doit définir un cookie avec un identifiant unique, tel qu'un GUID. Quand un cookie est valide, l'utilisateur doit rester connecté.
Lorsqu'un utilisateur se rend sur le site B, le site B doit définir un cookie avec son propre identifiant unique (un autre GUID), puis rediriger vers la connexion sur le site Lorsque l'utilisateur se connecte sur le formulaire sur A, nous devons mettre à jour la base de données du site B - peut-être via le service Web - avec l'ID utilisateur et l'ID unique qui a été passé le long - essentiellement laisser le site B savoir "quand un utilisateur avec ABCDEF dans leur cookie frappe votre site, il est en fait User387".
Ensuite, redirigez-vous vers le site B. Le cookie précédent est toujours défini, mais le site B lit maintenant ce cookie et trouve un ID utilisateur correspondant, il sait donc qui est l'utilisateur et permet l'accès. Lorsque l'utilisateur arrive sur le site A, s'il s'est déjà connecté au site A, il reconnaîtra son cookie, suivra les mêmes étapes que ci-dessus et redirigera immédiatement.
Ceci est une version très simple de ce que fait chaque service de connexion unique. Un utilisateur ne sera envoyé qu'une seule fois à la page de connexion de A, peu importe d'où il vient (site A ou site B).
N'utilisant pas le même domaine. Lorsque l'utilisateur se trouve sur le site A et est déjà authentifié, il passe ensuite au site B, comment le site B sait-il qu'il est déjà authentifié? Je ne veux pas que l'identifiant apparaisse deux fois. – user31673
@Sans savoir lorsqu'ils se déplacent vers le site B, ils n'ont pas de cookie pour le site B, donc le site B créera un cookie et redirigera vers la connexion pour le site A comme décrit ci-dessus; le site A aura déjà un cookie et sera capable de reconnaître l'utilisateur, sautant ainsi le processus de connexion manuel et passant directement à l'envoi de l'identifiant utilisateur et de l'identifiant uniqueID à B, puis redirection vers B. –
@Unknown la seule exigence est Lorsque la page de connexion se charge, elle vérifie si l'utilisateur est déjà connecté et passe à la partie traitement au lieu d'afficher un formulaire de connexion. –
Si vous utilisez l'authentification par formulaire, vous pouvez le faire en définissant la clé de l'ordinateur.
- 1. Partage de l'authentification entre ASP.NET et WordPress
- 2. Partage des listes de points de partage à travers les sous-sites
- 3. Partage de vues partielles ASP.NET MVC entre projets
- 4. État de partage entre ViewModels
- 5. Partage du système de connexion entre ASP classique et ASP.Net
- 6. Quelle est la meilleure pratique/méthode de partage de contenu par programmation entre sites dans Joomla?
- 7. Partage de code entre swfs
- 8. Partage d'une page entre des modules dans ASP.NET
- 9. Méthodes de partage d'instances de classe entre les processus
- 10. Modèle de partage de fonctionnalités entre les contrôleurs
- 11. ASP.NET MVC - Partage de l'état de la session entre les contrôleurs
- 12. Partage d'un HttpRuntime.Cache entre deux applications IIS
- 13. "Templating" dans jQuery - partage de certaines valeurs entre les sélecteurs
- 14. Partage de données entre des gestionnaires d'événements?
- 15. Partage de FlowDocuments entre plusieurs RichTextBoxes
- 16. Partage de mémoire entre CGImageRef et UIImage
- 17. Partage de ressources entre frères et sœurs
- 18. Partage de source entre deux projets Netbeans
- 19. Quelles sont les options disponibles pour le partage de données entre sous-domaines?
- 20. Partage d'applications ASP.NET MVC
- 21. Gestion des annonces pour les sites ASP.NET
- 22. Partage de chaînes de connexion entre deux applications .NET
- 23. DLL dans une application ASP.NET et SourceSafe/Partage entre les ordinateurs
- 24. Partage des données utilisateur/client/groupe entre les applications
- 25. profil Partage et rôles informations entre les applications web
- 26. Partage d'objets entre les codes C# et C++
- 27. ASP.NET MVC Partage de fichiers JavaScript à partir de la bibliothèque de classes
- 28. Fournisseur de profil de partage
- 29. Sharepoint: Comment déplacer des éléments entre les sites
- 30. Partage des préférences d'application entre plusieurs projets
en double de http://stackoverflow.com/questions/72125/how-do-you-pass-an-authenticaticated-session-between-app-domains – Kevin