Cómo compartir variables de aplicación y sesión entre Asp y Asp.net
La convivencia entre los ÁSPID tradicional y ASP.NET no crea problemas en los servidores de Microsoft desde la versión 2000.
Es suficiente habilitar el soporte ASP e instalar .NET Framework para poder aprovechar ambas tecnologías en sus aplicaciones web.
Los problemas surgen en la necesidad de utilizar, intercambiar, leer las variables de Sesión y Aplicación de ambas tecnologías.
Cómo compartir variables de aplicación y sesión entre Asp y Asp.net
Las variables de ambas tecnologías utilizan áreas de memoria dentro de su entorno de ejecución y no tienen nada en común excepto el nombre, de hecho las variables creadas por ASP serán legibles solo por esta tecnología mientras que las creadas por ASP.NET serán visibles solo dentro de este entorno. como podemos arreglar esto?
El truco, trivial pero funcional, está ahí: basta con solicitar una página ASP desde una página ASP.NET para leer el contenido de una variable Sesión es Solicitud de ese entorno, y viceversa para poder leer los objetos presentes en las páginas .NET desde la ASP.
Intentemos leer una variable de aplicación presente en el entorno ASP tradicional desde una página ASP.NET. Comencemos a escribir una página ASP que contenga este código dándole el nombre «ReadAsp.asp»:
<%
en caso de error reanudar siguiente
type = request («tipo»)
nombre = solicitud («nombre»)
si tipo = «sesión», entonces
si Sesión (nombre) = ”” entonces
Response.Write («»)
demás
Response.Write (Sesión (nombre))
terminara si
terminara si
si tipo = «aplicación», entonces
ifApplication (nombre) = ”” entonces
Response.Write («»)
demás
Response.Write (Aplicación (nombre))
terminara si
terminara si
Response.End ()
%>
Este código, que también es el que está presente en el ejemplo adjunto a este artículo, una vez llamado verifica qué tipo de variable desea leer y su nombre, luego lo muestra con un Response.Write trivial. Por ejemplo, para leer y visualizar el contenido de la variable de Aplicación «ejemplo», basta con llamar a esta página con los parámetros deseados:
http: //localhost/ReadAsp.asp? type = Application & name = example
Desde nuestra página ASP.NET es suficiente usar la técnica llamada «captura de URL» para llamar a esa página ASP y buscar su contenido. Si desde nuestra página ASP.NET queremos leer el contenido de la variable de Aplicación «ejemplo» utilizada en ASP, podemos escribir:
HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create («http: //localhost/ReadAsp.Asp? Type = Application & name = example»);
HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse ();
StreamReader sr = nuevo StreamReader (myResponse.GetResponseStream ());
content_variable = sr.ReadToEnd ();
Sencillo, ¿no es así? Para hacer lo mismo pero desde una página ASP, necesitamos escribir una página ASP.NET llamada «ReadNet.aspx» con este contenido:
<% @ Page language = ”c #”%>
Entonces, para obtener el contenido de una variable de aplicación utilizada en el entorno .NET de nuestra página ASP:
Dim objXMLHTTP, StrURL
StrURL = «http: //localhost/ReadNet.aspx? Type = application & name = example»
Establecer objXMLHTTP = Server.CreateObject («MSXML2.ServerXMLHTTP»)
objXMLHTTP.Open «GET», StrURL, false
StrCookie = Request.ServerVariables («HTTP_COOKIE») ‘<- estas dos líneas se explicarán a continuación
objXMLHTTP.setRequestHeader «COOKIE», StrCookie ‘<...
objXMLHTTP.Send
content_application = CStr (objXMLHTTP.ResponseText)
Establecer xml = Nada