Cómo compartir variables de aplicación y sesión entre Asp y Asp.net

La convivencia entre los ASP tradicional y ASP.NET no crea problemas en los servidores de Microsoft desde la versión 2000.

Es suficiente habilitar la compatibilidad con ASP e instalar .NET Framework para 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

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 e Aplicación de ese entorno, y viceversa para poder leer los objetos presentes en las páginas .NET desde 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 a continuación

tipo = solicitud ("tipo")

nombre = solicitud ("nombre")

si tipo = "sesión" entonces

si Sesión (nombre) = ”” entonces

Response.Write (“”)

más

Response.Write (Sesión (nombre))

terminara si

terminara si

si tipo = "aplicación" entonces

ifApplication (nombre) = ”” entonces

Response.Write (“”)

más

Response.Write (Aplicación (nombre))

terminara si

terminara si


Response.End ()

%>

Este código, que también es el 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=esempio</a>

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 = esempio”);

HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse ();

StreamReader sr = nuevo StreamReader (myResponse.GetResponseStream ());

content_variable = sr.ReadToEnd ();

Simple, ¿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 #”%>

void Page_Load () {

string name = Solicitar ["nombre"];

string tipo = Request ["tipo"];

if (tipo == ”sesión”)

{

if (Sesión [nombre] == nulo) Response.Write (“”);

más

Response.Write (Sesión [nombre] .ToString ());

}

if (tipo == ”aplicación”)

{

if (Aplicación [nombre] == nulo) Response.Write (“”);

más

Response.Write (Aplicación [nombre] .ToString ());
}

}

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 = esempio"

Establecer objXMLHTTP = Server.CreateObject ("MSXML2.ServerXMLHTTP")

objXMLHTTP.Open "GET", StrURL, false

StrCookie = Request.ServerVariables (“HTTP_COOKIE”) '<- queste due righe verranno spiegate di seguito

objXMLHTTP.setRequestHeader “COOKIE”, StrCookie '<…

objXMLHTTP.Send

contenuto_application = CStr (objXMLHTTP.ResponseText)

Establecer xml = Nada

Añade un comentario de Cómo compartir variables de aplicación y sesión entre Asp y Asp.net
¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.