Вы находитесь на странице: 1из 22

Administracin del estado

Descripcin

Administracin del estado Variables de aplicacin y de sesin Cookies y sesiones que no utilizan cookies

Leccin: administracin del estado


Qu es la administracin del estado? Tipos de administracin del estado Administracin del estado en el lado del servidor Administracin del estado en el lado del cliente

El archivo Global.asax

Qu es la administracin del estado?


Sin administracin del estado
Login.aspx
Introduzca su informacin de inicio de sesin: Nombre John Apellido Chen

Con administracin del estado


Login.aspx
Introduzca su informacin de inicio de sesin: Nombre John Apellido Chen

Enviar Greetings.aspx Hola


He olvidado quin eres!!

Servidor Web

Enviar Greetings.aspx Hola John Chen

Servidor Web

Tipos de Administracin del estado


Administracin del estado en el lado del servidor
Estado de la aplicacin

Administracin del estado en el lado del cliente


Cookies

La informacin est disponible para todos los usuarios de una aplicacin Web

Archivo de texto que almacena informacin para mantener el estado

Estado de sesin

Propiedad ViewState

La informacin est disponible nicamente para el usuario de una sesin especfica

Conserva valores entre mltiples peticiones para la misma pgina

Base de datos

Cadenas de consulta

En algunos casos, se utiliza el soporte de base de datos para mantener el estado en el sitio Web

Informacin aadida al final de una URL

Administracin del estado en el lado del servidor

El estado de la aplicacin es un mecanismo de almacenamiento global accesible desde todas las pginas de la aplicacin Web

El estado de sesin est limitado a la sesin de explorador actual

Los valores se conservan mediante el uso de variables de aplicacin y de sesin

Escalabilidad
Servidor Web

La sesin ASP.NET se identifica con la cadena SessionID


Equipo cliente

Variables de aplicacin y de sesin


SessionID

Administracin del estado en el lado del cliente

Utiliza cookies para mantener el estado


Cookies persistentes Cookies temporales/no persistentes

Menos fiable que las opciones de administracin del estado en el lado del servidor

El usuario puede eliminar cookies

Menos seguro que las opciones de administracin del estado en el lado del servidor Cantidad de informacin limitada

Restricciones en el lado del cliente en el tamao de los archivos Equipo cliente

Servidor Web

Cookies

El archivo Global.asax

Slo un archivo Global.asax por aplicacin Web Almacenado en la raz del directorio virtual de la aplicacin Web Utilizado para gestionar eventos de aplicacin y de sesin

El archivo Global.asax es opcional

El archivo Global.asax (continuacin)


Cliente
Peticin Respuesta

Servidor Web ASP.NET IIS ASP.NET HTTP Runtime Application_BeginRequest Application_AuthenticateRequest Application_AuthorizeRequest Application_ResolveRequestCache Application_EndRequest Application_UpdateRequestCache

Application_AquireRequestState
Application_PreRequestHandlerExecute

Application_ReleaseRequestState
Application_PostRequestHandlerExecute

Ejecucin de la pgina

Leccin: variables de aplicacin y de sesin


Inicializar variables de aplicacin y de sesin Utilizar variables de aplicacin y de sesin Demostracin: uso de las variables de sesin Duracin de las variables de aplicacin y de sesin

Almacenamiento escalable de variables de aplicacin y de sesin


Almacenar las variables de aplicacin y de sesin en una base de datos

Inicializar variables de aplicacin y de sesin

Las variables se inicializan en Global.asax

El objeto Application comparte informacin entre todos los usuarios de una aplicacin Web

Sub Application_Start(s As Object,e As EventArgs) Application("NumberofVisitors") = 0 End Sub protected void Application_Start(Object sender,EventArgs e) { Application["NumberofVisitors"] = 0; }

El objeto Session almacena informacin para una sesin de usuario concreta

Utilizar variables de aplicacin y de sesin

Establecer variables de aplicacin y sesin

Session("BackColor") = "blue" Application.Lock() Application("NumberOfVisitors") += 1 Application.UnLock() Session["BackColor"] = "blue"; Application.Lock(); Application["NumberOfVisitors"] = (int)Application["NumberOfVisitors"] Application.UnLock();

+ 1;

Leer variables de aplicacin y de sesin

strBgColor = Session("BackColor") lblNbVisitor.Text = Application("NumberOfVisitors")


strBgColor = (string)Session["BackColor"]; lblNbVisitor.Text = Application["NumberOfVisitors"].ToString();

Demostracin: uso de las variables de sesin

Inicializar una variable de sesin (un nmero) en global.asax Acceder a la variable de sesin desde una pgina Acceder a la variable de sesin desde otra pgina y modificarla Volver a acceder a la variable de sesin desde la primera pgina

Duracin de la variable de aplicacin y de sesin

Las variables de sesin tienen una duracin establecida tras el ltimo acceso

20 minutos es la duracin predeterminada

La duracin de la sesin puede modificarse en Web.config:


<configuration> <system.web> <sessionState timeout="10" /> </system.web> </configuration>

Las variables de aplicacin persisten hasta que se provoca el evento Application_End

Almacenamiento escalable de variables de aplicacin y de sesin


Por defecto, el estado de sesin se administra en proceso (in process) Inconveniente del almacenamiento en proceso:

No escalable

ASP.NET proporciona almacenamiento fuera del proceso (out of process) del estado de sesin

El estado puede almacenarse en una base de datos SQL Server o un servidor de estado
Servidor de estado

Ventajas del almacenamiento fuera del proceso:

Escalabilidad

Granja Web Variables de sesin y de aplicacin

-OSQL Cliente Variables de sesin y de aplicacin

Almacenar variables de aplicacin y de sesin en una base de datos


1

Configurar el estado de sesin en Web.config

Modo establecido a sqlserver o stateserver

<sessionState mode="SQLServer" sqlConnectionString="data source=SQLServerName; Integrated security=true" />

A continuacin, configurar el servidor SQL Server

c:\> OSQL S SQLServerName E <InstallSqlState.sql

OSQL crea varios procedimientos almacenados y bases de datos temporales para almacenar las variables

Leccin: sesiones con y sin cookies


Utilizar cookies para almacenar datos de sesin Prctica dirigida por el instructor: utilizar variables y cookies Recuperar informacin de una cookie Uso de sesiones que no utilizan cookies Configurar sesiones que no utilizan cookies

Utilizar cookies para almacenar datos de sesin

Crear una cookie:


HttpCookie objCookie = new HttpCookie("myCookie"); DateTime now = DateTime.Now; HttpCookie objCookie = new HttpCookie("myCookie"); DateTime now = DateTime.Now; objCookie.Values.Add("Time", now.ToString()); objCookie.Values.Add("ForeColor", "White"); objCookie.Values.Add("Time", now.ToString()); objCookie.Values.Add("BackColor", "Blue"); objCookie.Values.Add("ForeColor", "White"); objCookie.Values.Add("BackColor", "Blue"); objCookie.Expires = now.AddHours(1); Response.Cookies.Add(objCookie); Para crear una cookie Response.Cookies.Add(objCookie);

persistente, especificar el tiempo de expiracin

La cookie contiene informacin sobre el nombre de dominio


Set-Cookie: Username=John+Chen; path=/; domain=microsoft.com; Expires=Tuesday, 01-Feb-05 00.00.01 GMT

Prctica dirigida por el instructor: utilizar variables y cookies

Los estudiantes:

Aprendern a utilizar las variables de aplicacin y de sesin, y las cookies persistentes, para almacenar informacin del usuario

Tiempo: 15 Minutos

Recuperar informacin de una cookie

Leer la cookie

Dim objCookie As HttpCookie = Request.Cookies("myCookie") HttpCookie objCookie = Request.Cookies["myCookie"];

Recuperar valores de la cookie

lblTime.Text = objCookie.Values("Time") lblTime.ForeColor = System.Drawing.Color.FromName _ (objCookie.Values("ForeColor")) lblTime.BackColor = System.Drawing.Color.FromName _ (objCookie.Values("BackColor")) lblTime.Text = objCookie.Values["Time"]; lblTime.ForeColor = System.Drawing.Color.FromName (objCookie.Values["ForeColor"]); lblTime.BackColor = System.Drawing.Color.FromName (objCookie.Values["BackColor"]);

Uso de sesiones que no utilizan cookies

Cada sesin activa est identificada y se realiza su seguimiento utilizando IDs de sesin

Los IDs de sesin se comunican entre peticiones cliente-servidor utilizando una cookie HTTP o incluyndolos en la URL
Sesiones que no utilizan cookies

La informacin de ID de sesin est codificada en URLs No pueden utilizar URLs absolutas La mayora de navegadores limitan el tamao de la URL a 255 caracteres, lo cual limita el uso de IDs para las sesiones que no utilizan cookies

http://server/(h44a1e55c0breu552yrecobl)/page.aspx

Configurar sesiones que no utilizan cookies

El estado de sesin se configura en la seccin <SessionState> de Web.config Configurar cookieless = true

<sessionState cookieless="true" />

Вам также может понравиться