Es un problema bastante común y con algunas soluciones probadas. En resumen, la cuestión es la siguiente: Las páginas ASP y las páginas ASP.NET se ejecutan a través de procesos distintos, para compartir cualquier tipo de información, entonces, es necesario implementar algún tipo de comunicación interprocesos (IPC).
OK, ahora que ya entendimos qué hay que hacer el problema es encontrar el cómo. Esto tampoco es tan complicado porque el cómo te lo acabo de adelantar: hay muchas, pero no infinitos ni tan disímiles, estrategias para comunicar procesos distintos. Teniendo en cuenta, además, las características del contexto del que estamos hablando: un entorno web, información relacionada a una sesión de usuario, etc, etc, etc... el rango de alternativas se acota un poco más.
Te cuento brevemente cuál es la estrategia más difundida y con eso vas a poder buscar y/o elaborar la tuya.
Cualquier página ASP o ASP.NET va a vivir en un entorno web por lo que todo va empezar en un Request. Ese Request, que podrá ser un simple GET de una URL o un POST de un formulario (dejemos de lado los otros verbos posibles). Ahora bien, nada te impide hacer un GET (poner un link) de una página ASP a una ASP.NET. Tampoco tenés ninguna restricción a la hora de escribir un formulario y hacer un GET o un POST a un action que apunte a una página hecha con una tecnología distinta.
Si damos esto por cierto, entonces ya tenemos una manera de comunicar los dos procesos. En el querystring o en los campos del form (incluyendo campos hidden para que el usuario no los vea e, incluso, encriptando la información para más seguridad) podemos pasar piezas discretas de información entre los procesos.
Pero ¿qué pasa si la cantidad de información es muy grande o muy delicada como para hacer esto? Hay una característica que no hay que olvidar de las aplicaciones web: hay un servidor detrás de la interfaz de usuario que corre en el navegador. ¿Por qué no aprovecharlo?
Brevemente: en lugar de enviar la información entre POSTs y GETs, podés enviar algún dato que permita a los procesos que se ejecutan en el servidor intercambiar la información de la sesión. Supongamos el ejemplo más simple: Ambos websites están en el mismo servidor; definís una ruta que parametrizás en ambos websites y una estrategia para nombrar archivos de texto estandarizando el nombre del archivo según el usuario logueado; un proceso escribe la info en la ruta y el archivo, y el otro la busca en esa ruta y ese archivo. De ahí en adelante, podés separar los sitios web incluyendo una base de datos en común, servicios web, telepatía... lo que te guste más.
Esto es como aprender la tabla del 2: no se termina en 2x10. A vos te toca ver cómo diseñás los procesos para asegurarte de que no sólo intercambien la información de negocio, sino también la información operativa: lo mínimo es que cada proceso pueda calcular si el Request que está recibiendo está autorizado: que corresponde a una sesión de usuario que comenzó con una autenticación válida y que todavía no se terminó; poder bloquear un Request artificial (p. ej.: una URL tipeada en el navegador sin una sesión válida que autorice ese pedido) con el fin de no divulgar información de la sesión indebidamente. Además de eso, tenés que ocuparte del resto de los aspectos de la seguridad y el manejo de errores. Implementar una integración puede que te permita prolongar los plazos para convertir el website (incluso mantener los dos de manera indefinida) pero nadie dijo que te iba a resultar gratuito.
From: Adrian Cura
Sent: Wednesday, January 11, 2012 8:38 PM
Subject: [puntonet] Integracion entre asp y asp.net
Hola Pablo:
--
Adrián
El tema de compartir las sessiones es el gran tema. Nosotros encontramos una solución muy personalizada a partir de las características propias de nuestra aplicación web, que es muy grande y con muchos componentes. No existe una solución que provenga a partir de algun tipo de integración.
saludos cordiales.
--
Adrián
2012/1/11 Pablo A. Allois <[email protected]>
Buenas gente,
Tengo la suerte de haber pegado una aplicacion hecha en el viejo ASP.
La idea mia es empezar a reescibir algunas paginas en aspx y de a poco ir migrandola en la medida que vayan cambiando o surgiendo nuevos requerimientos.
El tema es … con que problemas se les ocurre que pueda encontrarme ?
Alguien hizo algo asi ? Me cuenta su experiencia ?
Como puedo hacer para compartir las sesiones en ambos entornos ?
