Vous êtes sur la page 1sur 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 Con administracin del


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

Enviar Enviar Servidor Web


Servidor Web
Greetings.aspx Greetings.aspx
Hola
Hola John Chen

He olvidado
quin eres!!
Tipos de Administracin del estado

Administracin del estado en Administracin del estado en


el lado del servidor el lado del cliente
Estado de la aplicacin Cookies
La informacin est disponible Archivo de texto que almacena
para todos los usuarios de una informacin para mantener el
aplicacin Web estado

Estado de sesin Propiedad ViewState


La informacin est disponible
Conserva valores entre mltiples
nicamente para el usuario de una
peticiones para la misma pgina
sesin especfica

Base de datos Cadenas de consulta


En algunos casos, se utiliza el
Informacin aadida al final de
soporte de base de datos para
una URL
mantener el estado en el sitio Web
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
La sesin ASP.NET se identifica con la cadena SessionID
Servidor Web
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 Servidor Web
Equipo cliente

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_EndRequest

Application_ResolveRequestCache Application_UpdateRequestCache

Application_AquireRequestState Application_ReleaseRequestState

Application_PreRequestHandlerExecute 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"] + 1;
Application.UnLock();

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
Ventajas del almacenamiento fuera del proceso: Servidor de estado

Escalabilidad Granja Web

Variables de sesin y de aplicacin

-O-

SQL
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" />


2 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");
HttpCookie
DateTime now
objCookie
= DateTime.Now;
= new HttpCookie("myCookie");
DateTime now = DateTime.Now;
objCookie.Values.Add("Time", now.ToString());
objCookie.Values.Add("Time", now.ToString());
objCookie.Values.Add("ForeColor", "White");
objCookie.Values.Add("ForeColor", "Blue");
objCookie.Values.Add("BackColor", "White");
objCookie.Values.Add("BackColor", "Blue");
objCookie.Expires = now.AddHours(1);
Response.Cookies.Add(objCookie);
Response.Cookies.Add(objCookie); Para crear una cookie
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
http://server/(h44a1e55c0breu552yrecobl)/page.aspx

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
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" />

Vous aimerez peut-être aussi