2010-08-23 4 views
2

Comment puis-je utiliser un Guid pour implémenter le Single Sign sur le même domaine? Je ne peux pas utiliser les sessions car les différentes applications Web s'ouvriraient dans de nouvelles fenêtres, perdant ainsi la session.Single Sign On utilisant Guid

Technologie utilisée: ASP.net 3.5, architecture MVC2, C#.

+0

Est-ce que ce doit être le GUID? Ou avez-vous simplement besoin d'Active Directory pour valider/transmettre les informations d'identification de l'utilisateur à votre site Web ASP.NET? – Gary

+0

Je préférerais que ce soit un guid puisque je prévois d'utiliser cette valeur et ID utilisateur pour valider l'utilisateur. – user428747

+0

Voir: http://stackoverflow.com/questions/315403/getting-authenticate-ad-users-objectguid-from-asp-net – Gary

Répondre

2

Vous devriez pouvoir utiliser un cookie et y accéder à partir de n'importe quelle application s'exécutant sous le même domaine. Si les autres applications Web sont assis sur un sous-domaine, vous devez définir l'Domain du cookie comme:

Response.Cookies("CookieName").Domain = ".mydomain.com" 

Si les sites existent avec dans un intranet et les utilisateurs sont tous connectés à Windows avec un compte d'utilisateur unique, vous pouvez activer l'authentification Windows et lire leur nom d'utilisateur Windows à partir de leur requête Web pour déterminer l'utilisateur.

Editer pour élaborer: Demandez à chaque site de lire le cookie. Vous pouvez déterminer si l'utilisateur est connecté ou non en fonction de l'existence du cookie, qui peut être géré en définissant l'expiration du cookie. Si vous vouliez rendre cela plus sophistiqué (il y a probablement des problèmes de sécurité en ne comptant que sur le cookie), vous pouvez stocker le GUID dans la base de données et demander à chaque page de s'assurer que le GUID passe en est valide. De là, vous voulez gérer les GUID validés dans la base de données (comparez les horodatages, etc.).

Vous pouvez stocker des informations supplémentaires dans le cookie à utiliser pour la validation. Par exemple, vous pouvez générer une chaîne aléatoire et la stocker avec votre GUID dans la base de données. Effectuez un chiffrement unidirectionnel sur cette chaîne et stockez-le dans le cookie lorsque vous l'enregistrez initialement. De cette façon, vous pouvez comparer cette valeur lors de la vérification pour voir si le cookie est valide.

+0

Merci qui a été utile ... – user428747

+0

Merci les gars . J'ai utilisé le system.guid pour générer une valeur guid pour chaque utilisateur connecté et enregistré dans la base de données. C'était mon identifiant unique pour l'utilisateur connecté que j'avais l'habitude d'utiliser signle signer. – user428747

+0

J'essaie de créer un seul signe sur webapp pour lequel donnerait accès à différents sites Web avec leur propre base de données. Comment puis je faire ça. – user428747

Questions connexes