Cómo almacenar el estado en aplicaciones de páginas Active Server

Seleccione idioma Seleccione idioma
Id. de artículo: 175167 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Cuando desarrolle un Web de páginas Active Server (ASP) aplicación, una forma común de personalizar el contenido es almacenar información sobre el usuario. Hay varias formas de almacenar información en un ASP entorno. Este artículo se enumeran estado de las formas más comunes para almacenar, incluidos código de ejemplo y el pros y los inconvenientes de cada opción.

Más información

Variables de aplicación y sesión

¿Cómo funcionan?

Las variables de sesión y aplicación se almacenan en el servidor. Un SessionID, que se genera al principio de una sesión ASP, es una cookie en memoria que almacena en el cliente para identificar las variables de sesión . Como resultado, el cliente debe tener las cookies habilitadas en el explorador para variables de sesión y aplicación trabajar.

Profesionales de TI

  • Este método es fácil de implementar.
  • Puede almacenar los objetos y tipos de variable simples (aunque no es recomendable almacenar objetos).
  • Los valores que están almacenados en variables de sesión y aplicación se ocultan al usuario.

Inconvenientes

  • Este método requiere que los clientes tienen las cookies habilitadas en su explorador Web.
  • Este método confiable no puede compartirse entre marcos en un conjunto de marcos o en varias instancias del explorador.
  • Con este método se almacena información en el servidor Web. Esto disminuye la escalabilidad de dos maneras: variables de sesión y aplicación utilizan recursos en el servidor y no se puede utilizar en conjuntos de completamente con equilibrio de carga Web servidores.

Ejemplo

Establecer el valor de una variable Session:
<%
   'Store information in a session variable.
   Session("myInformation") = "somevalue"
%>
				
recuperar el valor de la variable Session:
<%
    'Retrieve the information stored in the session variable.
    myValue = Session("myInformation")
%>
				

Cookies

¿Cómo funcionan?

Hay dos tipos de cookies: las cookies en memoria y cookies que se almacenan en disco del cliente. Una cookie en memoria es uno o más pares nombre-valor se almacenan en memoria del explorador hasta que se cierre el explorador. Una cookie que se almacena en disco es un archivo en el equipo cliente que contiene pares de nombre y valor.

Las cookies se pueden establecer y recuperar desde el código de cliente y de servidor.

Profesionales de TI

  • Este método es fácil de implementar.
  • Este método se puede guardar en disco para uso futuro (basado en disco cookie) estableciendo simplemente una fecha de caducidad en la cookie. Esto permite el almacenamiento entre sesiones del explorador.

Inconvenientes

  • El cliente puede modificar manualmente las cookies almacenadas en el disco.
  • Este método requiere que los clientes tienen las cookies habilitadas en su explorador Web.
  • Las cookies no pueden almacenar objetos.

Ejemplo

Almacenar información en una cookie:
<%
   'Set a cookie value.
   Response.Cookies("myInformation") = "somevalue"
   'Expire the cookie to save it to disk. If this is omitted, the cookie
   'will be an in-memory cookie. In this case, the cookie is set to expire
   'in twenty days.
   Response.Cookies("myInformation").Expires = now() + 20
%>
				
recuperar el valor de una cookie:
<%
    'Retrieve the information that is stored.
    myValue = Request.Cookies("myInformation")
%>
				

Campos de formulario ocultos

¿Cómo funcionan?

Cada página necesita un formulario con campos de formulario ocultos que contienen la información de estado. En lugar de vincular y redirigir a páginas, se envía el formulario cuando un usuario explora una página diferente.

Profesionales de TI

  • Este método no requiere cookies.

Inconvenientes

  • Puede ser complicado para redirigir y vínculos a páginas.
  • Este método no puede almacenar objetos.

Ejemplo

Almacenar información en campos ocultos:
<HTML>
<HEAD>
<SCRIPT LANGUAGE=javascript>
  //Function that is used to submit the links:
  function browseToUrl(url){
    form1.action=url;
    form1.submit();
  }
</SCRIPT>
</HEAD>
<BODY>

<%
  dim myInformation
  myInformation = "somevalue"  
%>

<!-- This stores the value that is set above in the hidden form field. -->
<FORM id="form1" name="form1" action="" method="post">
<INPUT type="hidden" id="myInformation" name="myInformation" value="<%= myInformation%>">  

<!-- Navigation sample that uses this technique. -->
<INPUT type="button" value="p3.asp" id=button1 name=button1 onclick='goToUrl("p3.asp");'>
</FORM>
</BODY>
</HTML>
				
recuperar el valor del campo de formulario oculto:
<%
    'Retrieving the information that is stored.
    myValue = Request.Form("myInformation")
%>
				

QueryString

¿Cómo funciona?

Cuando se utiliza la colección QueryString , las variables se almacenan en la dirección URL como un par nombre-valor. Por ejemplo:
http://servername/page.asp?var1=value1&var2=value2&var3=value3
				
Nota : pares de nombre y valor están separados por un signo de y comercial (&).

Profesionales de TI

  • Si el cliente de marcadores de la página, se conservarán el estado.

Inconvenientes

  • La dirección URL completa sólo puede ser 2083 bytes.
  • Este método no puede almacenar objetos.
  • La dirección URL es muy largo y difícil de leer.

Ejemplo

Almacenar información en la cadena de consulta:
<HTML>
<HEAD></HEAD>
<BODY>
<%
   'Function that assembles the QueryString:
   function AddToQueryString(qs, name, value)
     
     if qs="" then
       qs = name & "=" & value
     else
       qs = qs & "&" & name & "=" & value
     end if
     
     addToQueryString = qs
   end function

   dim querystring

   'Store the first value.
   querystring = AddToQueryString(querystring, "firstvar", "firstvalue")
   'Store the second value.
   querystring = AddToQueryString(querystring, "secondvar", "secondvalue")
%>

<a href="urlreceive.asp?<%=querystring%>">urlreceive.asp</a>
</BODY>
</HTML>
				
recuperar los valores de la cadena de consulta:
<%
    'Retrieve the information stored.
    myFirstValue = Request.QueryString("firstvar")
    mySecondValue = Request.QueryString("secondvar")
%>
				

Archivo y base de datos

¿Cómo funcionan?

Puede implementar esta técnica de muchas maneras diferentes. Los pasos siguientes ilustran una forma de implementar el archivo y el almacenamiento de base de datos de estado:
  1. Generar un identificador cuando el usuario inicia por primera vez la sesión o irá a una página dentro de la aplicación.
  2. Utilizar cualquiera de las técnicas de este artículo para almacenar el identificador.
  3. Para almacenar los valores en un archivo, use el identificador como nombre de archivo. Para almacenar los valores en una base de datos, utilice una combinación del identificador y el par de nombre y valor para identificar el registro.
  4. Almacenar, opcionalmente, una marca de hora con el par de nombre y valor en la base de datos. Para los archivos, puede utilizar la marca de hora desde la última revisión.
  5. Escribir un servicio para realizar limpieza (eliminar registros y archivos) en determinados intervalos (por ejemplo, cada 20 minutos o cada noche, en función de cuántos usuarios tener acceso al sitio). El servicio puede utilizar la marca de hora para determinar si un registro ha caducado.

Profesionales de TI

  • Los valores son completamente oculta al usuario.
  • Si utiliza un recurso compartido de archivos o una base de datos, esto puede utilizarse para simular las variables de sesión en un conjunto de servidores Web.
  • No se requiere cookies.

Inconvenientes

  • Almacena los datos en el servidor.
  • Puede ser difícil de implementar.
  • Este método puede ser lento porque base de datos y archivo de acceso es necesario para almacenar y recuperar los valores.

Referencias

Para obtener más información, consulte los artículos siguientes en Microsoft Developer Network (MSDN):
objeto de sesión
http://msdn2.microsoft.com/en-us/library/aa371675.aspx

Application (objeto)
http://msdn2.microsoft.com/en-us/library/aa210897(office.11).aspx

cookies
Response.Cookies Collection
Request.Cookies Collection

QueryString
http://msdn2.microsoft.com/en-us/library/aa196462(office.11).aspx
Para obtener información adicional, haga clic en los números de artículo correspondientes para verlos en Microsoft Knowledge Base:
244465Cómo deshabilitar estado de sesión de ASP en páginas Active Server
178037PRB: Session Variables Lost When ASP is Located in Frameset
Para los artículos más recientes de Knowledge Base y otra información de soporte técnico sobre Visual InterDev y páginas Active Server, vea la siguiente página en el sitio de soporte técnico de Microsoft:
http://support.microsoft.com/search/default.aspx?qu=vinterdev

Propiedades

Id. de artículo: 175167 - Última revisión: viernes, 9 de marzo de 2007 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Active Server Pages 4.0
Palabras clave: 
kbmt kbaspobj kbcodesnippet kbhowto kbscript KB175167 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 175167
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com