12.170 cursos gratis
8.780.592 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Web forms. Programación

Autor: Hassan Chair
Curso:
9/10 (1 opinión) |86 alumnos|Fecha publicación: 13/09/2011
Envía un mensaje al autor

Capítulo 8:

 Session. Variables y controles

2.3. Variables de Sesión y el objeto Session
Las variables de tipo ViewState tienen dos importantes limitaciones: Sólo permiten conservar datos entre instancias de una misma página y; no podemos almacenar objetos de cualquier clase.

Si nuestra aplicación necesita mantener objetos de clases no serializables o debe tener algún dato accesible para distintas páginas de la misma, hemos de recurrir a otra solución para el mantenimiento del estado, como puede ser la utilización de variables de sesión.

La sesión es un concepto asociado al uso que un determinado cliente realiza de una aplicación Web.

Se puede decir que un cliente da por comenzada una sesión en la aplicación en el momento en que realiza una petición de cualquiera de los recursos asociado a la misma (páginas html, aspx o asp).

A partir de ese instante, todas las solicitudes posteriores que ese cliente realice a algún otro elemento de la aplicación pertenecerán a la misma sesión.

La sesión se dará por finalizada cuando tenga lugar alguno de los siguientes sucesos:

* El usuario cierra el navegador cliente.
* El cliente sobrepasa el periodo máximo de inactividad.

El periodo máximo de inactividad es el tiempo máximo que un cliente puede permanecer sin realizar solicitudes a la aplicación. Si se supera, la sesión se da por concluida y todos los datos asociados a la misma se perderán, por lo que la siguiente petición que realice dará comienzo a una nueva sesión.

Este periodo máximo de inactividad depende del servidor Web donde se aloje la aplicación, estando establecido en 20 minutos para el Internet Information Services (IIS). No obstante, como veremos más adelante, ASP.NET dispone de diversos mecanismos para configurar este tiempo a nivel de aplicación.

Objeto Session y variables de sesión
El objeto Session de ASP permite gestionar las sesiones de los usuarios durante la ejecución de una aplicación ASP.NET. Su principal funcionalidad es la de proporcionar acceso a las variables de sesión.

Las variables de sesión son espacios de memoria del servidor, donde una aplicación puede almacenar datos que estén accesibles para todas las instancias de las páginas a las que un determinado usuario accede durante la sesión.

Desde cualquiera de las páginas aspx de la aplicación, se puede acceder a la colección de variables de sesión del usuario actual a través del indizador del objeto Session. Sintaxis:

this.Session["nombre _variable'']

Siendo "nombre variable" el nombre de la variable de sesión.

A la hora de recuperar el contenido de una variable de sesión, hay que tener en cuenta que la expresión anterior devuelve un object, por lo que, al igual que sucede con las variables ViewState, será necesario realizar una conversión explícita o casting al tipo destino. Ejemplo:

this. Session ["numero"] =5;

int p = (int)this.Session["numero"];

En caso de que no exista una variable de sesión con el nombre especificado, la expresión this.Session["nombre_variable"] contendrá null

Aunque una variable de sesión pueda constituir una solución más sencilla para el mantenimiento del estado que la inserción de datos en la URL o las variables ViewState, supone un coste de recursos de memoria del servidor. Por ello, este tipo de variables debe ser utilizado sólo cuando sea realmente necesario ya que un uso desmesurado de las mismas puede provocar una pérdida importante de rendimiento en la aplicación, especialmente cuando existe un elevado número de usuarios accediendo a ellas.

Control de sesiones
Además de proporcionar acceso a las variables de sesión, el objeto Session dispone de una serie de propiedades y métodos que permiten realizar desde código un uso efectivo de las sesiones. Seguidamente, comentaremos algunos de los más importantes.

* Timeout. Esta propiedad permite recuperar y establecer el periodo máximo de inactividad para la sesión actual. Su valor viene definido en minutos y nunca podrá ser superior a 525.600, que es el número de minutos equivalente a un año. La siguiente instrucción establece un periodo máximo de inactividad de 10 minutos para la sesión del usuario que ejecute la instrucción:

this.Session.Timeout= 10;

Un valor reducido para esta propiedad puede hacer más eficiente la aplicación al disminuir los recursos de memoria de servidor utilizados. Sin embargo, un valor demasiado bajo también podría deteriorar el rendimiento de la misma, por ello, esta propiedad deberá ser ajustada en función de las características de cada aplicación.

Este valor puede ser establecido también de forma general para todas las sesiones a través del elemento <sessionState> del archivo de configuración web.config, que estudiaremos más adelante.

* Abandon(). Invocando a este método se invalida la sesión actual, haciendo que todas las variables de sesión asociadas sean destruidas. Se debe llamar a este método cada vez que quiera darse por concluida la sesión del usuario.

* Remove(String Name). Este método permite eliminar de la sesión actual la variable cuyo nombre se especifica.

Capítulo siguiente - Archivo. Aplicación
Capítulo anterior - Mantenimiento. HTTP

Nuestras novedades en tu e-mail

Escribe tu e-mail:



MailxMail tratará tus datos para realizar acciones promocionales (vía email y/o teléfono).
En la política de privacidad conocerás tu derechos y gestionarás la baja.

Cursos similares a Web forms. Programación



  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Programación en C++
C++ es un potente lenguaje de programación que apareció en 1980, continuando con... [04/06/04]
69.596  
2. C# Curso de Programación
Curso Básico de programación en C#, este curso básico abarcará desde las bases del... [14/07/05]
15.672  
3. Programación estructurada
Este curso les ayudará a tener conceptos básicos de la programación. Estos... [25/04/07]
3.025  

¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail