2011-05-10 7 views
5

J'essaie d'exécuter deux applications Web en utilisant la même base de données de fournisseur d'appartenance ASP.NET fournie avec MVC3. Ainsi, deux applications Web fonctionnent côte à côte et elles ont toutes les deux la même connexion avec la même base de données d'appartenance. Le problème est maintenant, je ne peux me connecter à une application et se déconnecter automatiquement à l'autre. Cependant, la fonctionnalité que je souhaite est la suivante: si je me connecte à l'un ou à l'autre, je me connecte automatiquement à l'autre.Problème de connexion à un abonnement ASP.Net

Je me demandais quel est le truc pour activer cette fonctionnalité.

merci beaucoup

Répondre

4

Si vous utilisez des formulaires d'authentification des utilisateurs sont suivis avec les cookies. Les cookies sont limités par défaut uniquement à l'application qui les a émis. Et à cause de cela l'autre application ne peut pas voir le cookie d'authentification créé par le premier. Ainsi, par exemple si vous avez les deux applications hébergées respectivement sur foo.example.com et bar.example.com vous pouvez définir la propriété domain du cookie dans web.config des deux applications à example.com:

<forms 
    loginUrl="/login/index.mcp" 
    requireSSL="true" 
    protection="All" 
    timeout="120" 
    domain="example.com" 
/> 

De cette façon, le cookie sera partagé entre ces deux applications et vous serez en mesure de réaliser Single Sign On.

+0

Eh bien, je l'ai testé et cela n'a pas fonctionné sur ma machine. Ce que je fais est de nous un site Web dans mon IIS avec le domaine "lwww.domain.com", puis déployer une application dans la racine, une autre dans une application Web séparée sous la racine. Ils ont utilisé differnt app pool. Je me connecte à la racine, mais je ne suis pas connecté automatiquement à l'enfant un .... Toute aide est appréciée. – Frank

+0

@ user299230, qu'avez-vous défini la propriété 'domain' dans web.config? Lorsque vous inspectez avec FireBug ou Fiddler les demandes voyez-vous le cookie d'authentification étant envoyé à la deuxième application? Essayez également de définir les clés de la machine sama pour les deux applications: http://msdn.microsoft.com/en-us/library/ff649308.aspx –

0

Finanlly je l'ai fixé. Mon application fonctionne sous le même domaine donc le domaine n'est pas un problème (Mais merci beaucoup, Darin). Le problème est: IIS génère par défaut une clé de machine differnt pour une application web différente. Donc, je dois spécifier explicitement la même clé machine dans web.config ~!

+0

Donnez à Darin les points pour essayer de vous aider! – Jeremy

Questions connexes