Pasar datos de sesión entre aplicaciones ASP.NET

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.

Gracias.

Editar: 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 también otras variables de sesión.

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

Complemente esto para que la cookie se comparta: http://mgrzyb.blogspot.com/2007/12/aspnet-and-subdomains.html

No está claro por su pregunta si solo le preocupan los inicios de sesión, o si realmente necesita compartir datos de sesión entre aplicaciones.

Asumiendo esto último, podrías intentar algo como esto:

  • primero, asegúrese de que todas las aplicaciones se estén ejecutando en el mismo dominio. Si no, todas las apuestas están apagadas. No sé si todavía hay una forma sencilla de configurar la propiedad de dominio de la cookie de sesión, por lo que puede que tenga que hacerlo usted mismo, estableciendo la propiedad del dominio de la cookie en el dominio:

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

  • Tendrá que asegurarse de que cada aplicación esté configurada para usar un servidor de estado común o una sesión respaldada por db.

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

¿Por qué quieres compartir sesiones entre aplicaciones?

La sesión ASP.NET 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 estrechamente relacionadas, por ejemplo, el usuario usa ambas cosas al mismo tiempo, o casi al mismo tiempo, podría considerar fusionarlas en una única aplicación ASP.NET.

Si sus aplicaciones no están estrechamente relacionadas, tal vez deberían compartir la misma base de datos como un medio para intercambiar datos, o usar una API, por ejemplo, basada en Servicios Web para intercambiar información.

Espero que ayude.