Los últimos tutoriales de desarrollo web
 

ASP objeto de sesión


Un objeto de sesión almacena información acerca de, o cambiar la configuración de una sesión de usuario.


El objeto Session

Cuando se trabaja con una aplicación en el ordenador, lo abre, hacer algunos cambios y después de cerrarlo. Esto es muy parecido a una sesión. El equipo sabe quién eres. Se sabe que cuando se abre la aplicación y cuando se cierra. Sin embargo, en Internet hay un problema: el servidor web no sabe quién eres y lo que haces, porque la dirección HTTP no mantiene estado.

ASP resuelve este problema mediante la creación de una cookie única para cada usuario. La cookie se envía al ordenador del usuario y contiene información que identifica al usuario. Esta interfaz se llama el objeto Session.

El objeto Session almacena información acerca de, o cambiar la configuración de una sesión de usuario.

Variables almacenadas en una sesión de información bodega objeto alrededor de un solo usuario, y están disponibles para todas las páginas en una sola aplicación. información común almacenada en variables de sesión son nombre, identificación y preferencias. El servidor crea un nuevo objeto de sesión para cada nuevo usuario, y destruye el objeto Session cuando la sesión caduca.


Cuando hace una sesión de inicio?

Una sesión se inicia cuando:

  • Un nuevo usuario solicita un archivo ASP y el archivo Global.asa incluye un procedimiento Session_OnStart
  • Un valor se almacena en una variable de sesión
  • Un usuario solicita un archivo ASP y el archivo Global.asa utiliza el <object> etiqueta para crear una instancia de un objeto con ámbito de sesión

¿Cuándo termina una sesión?

Una sesión termina si un usuario no ha solicitado ni ha actualizado una página en la aplicación durante un período determinado. Por defecto, esta es de 20 minutos.

Si desea establecer un intervalo de tiempo de espera es más corto o más largo que el valor por defecto, usar el Timeout la propiedad.

El ejemplo siguiente establece un intervalo de tiempo de espera de 5 minutos:

<%
Session.Timeout=5
%>

Usar la Abandon método para finalizar una sesión de inmediato:

<%
Session.Abandon
%>

Note: El principal problema de las sesiones es cuando se debe terminar. No sabemos si la última petición del usuario fue la final o no. Así que no sabemos cuánto tiempo debemos mantener la sesión "alive" . Esperar demasiado tiempo para una sesión inactiva consume recursos en el servidor, pero si la sesión se elimina demasiado pronto el usuario tiene que empezar todo de nuevo porque el servidor ha borrado toda la información. Encontrar el intervalo de tiempo de espera adecuado puede ser difícil!

Tip: almacenar sólo pequeñas cantidades de datos en variables de sesión!


Almacenar y recuperar variables de sesión

Lo más importante sobre el objeto Session es que se puede almacenar variables en ella.

El siguiente ejemplo fijará la variable de sesión username a "Donald Duck" y la variable de sesión age a "50" :

<%
Session("username")="Donald Duck"
Session("age")=50
%>

Cuando el valor se almacena en una variable de sesión que se puede llegar desde cualquier página de la aplicación ASP:

Welcome <%Response.Write(Session("username"))%>

La línea anterior rendimientos: "Welcome Donald Duck" .

También puede almacenar las preferencias del usuario en el objeto Session, y luego acceder a que la preferencia para elegir qué página para volver al usuario.

El siguiente ejemplo especifica una versión de sólo texto de la página si el usuario tiene una baja resolución de pantalla:

<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>

Retire variables de sesión

La colección Contenido contiene todas las variables de sesión.

Es posible eliminar una variable de sesión con el método Remove.

El siguiente ejemplo elimina la variable de sesión "sale" si el valor de la variable de sesión "age" es menor que 18:

<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>

Para eliminar todas las variables en una sesión, utilice el método RemoveAll:

<%
Session.Contents.RemoveAll()
%>

Recorrer la colección Contenido

La colección Contenido contiene todas las variables de sesión. Puede recorrer la colección Contenido, para ver lo que está almacenada en ella:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>

Resultado:

username
age

Si usted no sabe el número de elementos de la colección Contenido, puede utilizar la propiedad Count:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>

Resultado:

Session variables: 2
Donald Duck
50

Recorrer la colección StaticObjects

Puede recorrer la colección StaticObjects, para ver los valores de todos los objetos almacenados en el objeto Session:

<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>