2009-03-05 22 views
7

Tenemos varias aplicaciones ASP.NET implementadas en algunos servidores. ¿Existe una forma estándar de reutilizar los datos de la sesión o algún otro método para no requerir que los usuarios inicien sesión en la siguiente aplicación cuando pasen de una aplicación a otra si ya se han autenticado? Espero que haya una forma de hacer las mejores prácticas que ustedes conozcan. Siento que debería haber algo fácil que me estoy perdiendo.Pasar datos de sesión entre aplicaciones ASP.NET

Gracias.

Edit: Para ser más claro, la información principal en la sesión que me gustaría pasar es el ID de usuario autenticado, pero posiblemente algunas otras variables de sesión también.

+0

Autenticación y sesión son 2 problemas separados (aunque relacionados), respondió el bit de sesión en mi respuesta – eglasius

Respuesta

1

Para la sesión de verificación de esto: http://www.codeproject.com/KB/aspnet/Sharing_session_state.aspx

Complemento con este modo la cookie es compartida: http://mgrzyb.blogspot.com/2007/12/aspnet-and-subdomains.html

+0

No creo que funcione en subdominios, ya que la cookie de sesión tiene el nombre de host completo por defecto. – chris

+0

actualizado con un enlace para obtener más información sobre cómo pasar el tema del subdominio – eglasius

+0

por cierto, sé que funciona de esa manera, pero este tipo afirma que puede hacerlo más fácil: http://forums.asp.net/t/ 1332808.aspx (no estoy seguro si lo hace, pero vale la pena intentarlo) – eglasius

0

No está claro a partir cuestionas si sólo está preocupado por los inicios de sesión, o si realmente se necesita para compartir datos de sesión entre las aplicaciones .

Asumiendo este último, podría intentar algo como esto:

  • en primer lugar, asegúrese de que todas las appliations se están ejecutando en el mismo dominio. Si no, todas las apuestas están apagadas. No sé si todavía hay una forma simple de configurar la propiedad de dominio de la cookie de sesión, por lo que puede tener que hacerlo usted mismo, configurando la propiedad de dominio de cookie en el dominio:

    Response.Cookies ["ASP .NET_SessionId "]. Domain =" .midominio.com ";

  • que necesita para asegurarse de que cada aplicación está configurado para utilizar un servidor de estado común, o una sesión db respaldados.

0

Compartir un inicio de sesión entre aplicaciones (mencionado anteriormente) es un juego de pelota bastante diferente para compartir sesiones ASP.NET entre aplicaciones.

¿Por qué quieres compartir sesiones entre aplicaciones?

ASP.NET Session es una metáfora de la interacción actual de un usuario con una aplicación ASP.NET. Existe en ASP.NET para darnos un lugar donde almacenar datos de estado temporales entre las diversas solicitudes de página que hace un usuario mientras usa su aplicación.

Si sus aplicaciones están muy relacionadas, p.el usuario usa ambos al mismo tiempo, o casi al mismo tiempo, podría considerar fusionarlos en una sola aplicación ASP.NET.

Si sus aplicaciones no están estrechamente relacionadas, quizás deberían compartir la misma base de datos como medio para intercambiar datos, o usar una API, p. basado en servicios web para intercambiar información.

Espero que ayude.

Cuestiones relacionadas