2011-05-10 13 views
5

Estoy tratando de ejecutar dos aplicaciones web utilizando la misma base de datos de proveedores de membresía de ASP.NET que viene con MVC3. Así que dos aplicaciones web se ejecutan una al lado de la otra y ambas tienen la misma conexión a la misma base de datos de membresía. El problema ahora es que solo puedo iniciar sesión en una aplicación y desconectarme automáticamente en la otra. Sin embargo, la característica que quiero es, si inicio sesión en cualquiera de los dos, me conecto automáticamente al otro.Problema de inicio de sesión de membresía de ASP.Net

Me preguntaba cuál es el truco para habilitar esta función.

muchas gracias

Respuesta

4

Si está utilizando formularios de autenticación de usuarios se realiza un seguimiento con las cookies. Las cookies están restringidas por defecto solo a la aplicación que las emitió. Y debido a esto, la otra aplicación no puede ver la cookie de autenticación creada por la primera. Así, por ejemplo, si tiene las dos aplicaciones alojadas, respectivamente, en foo.example.com y bar.example.com se podía establecer la propiedad domain de la galleta en web.config de ambas aplicaciones a example.com:

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

De esta manera la cookie se repartirá entre estas dos aplicaciones y podrá lograr Single Sign On.

+0

Bueno, lo probé y no funcionó en mi máquina. Lo que hago es crear un sitio web en mi IIS con el dominio "lwww.domain.com", luego implementar una aplicación en la raíz y otra en una aplicación web separada debajo de la raíz. Utilizaron diferentes grupos de aplicaciones. Me conecté a la raíz pero no me conecté automáticamente en la secundaria .... Se agradece cualquier ayuda. – Frank

+0

@ user299230, ¿en qué configuró la propiedad 'domain' en web.config? Cuando inspecciona con FireBug o Fiddler las solicitudes, ¿ve la cookie de autenticación que se envía a la segunda aplicación? También intente configurar las teclas de la máquina sama para ambas aplicaciones: http://msdn.microsoft.com/en-us/library/ff649308.aspx –

0

Finanlly Lo arreglé. Mi aplicación se ejecuta bajo el mismo dominio, por lo que el dominio no es un problema (Pero muchas gracias, Darin). El problema es: IIS genera de forma predeterminada una clave de máquina diferente para diferentes aplicaciones web. Así que tengo que especificar la misma clave de máquina en web.config explícitamente ~!

+0

¡Dé a Darin los puntos por tratar de ayudarlo! – Jeremy

Cuestiones relacionadas