La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Administración del estado

Presentaciones similares


Presentación del tema: "Administración del estado"— Transcripción de la presentación:

1 Administración del estado

2 Descripción Administración del estado
Variables de aplicación y de sesión Cookies y sesiones que no utilizan cookies

3 Lección: administración del estado
¿Qué es la administración del estado? Tipos de administración del estado Administración del estado en el lado del servidor Administración del estado en el lado del cliente El archivo Global.asax

4 ¿Qué es la administración del estado?
Sin administración del estado Con administración del estado Login.aspx Login.aspx Introduzca su información de inicio de sesión: Introduzca su información de inicio de sesión: Nombre Nombre John John Apellido Apellido Chen Chen Servidor Web Enviar Enviar Servidor Web Greetings.aspx Greetings.aspx Hola Hola John Chen ¡¡He olvidado quién eres!!

5 Tipos de Administración del estado
Administración del estado en el lado del servidor Administración del estado en el lado del cliente Estado de la aplicación La información está disponible para todos los usuarios de una aplicación Web Cookies Archivo de texto que almacena información para mantener el estado Estado de sesión La información está disponible únicamente para el usuario de una sesión específica Propiedad ViewState Conserva valores entre múltiples peticiones para la misma página Base de datos En algunos casos, se utiliza el soporte de base de datos para mantener el estado en el sitio Web Cadenas de consulta Información añadida al final de una URL

6 Administración del estado en el lado del servidor
El estado de la aplicación es un mecanismo de almacenamiento global accesible desde todas las páginas de la aplicación Web El estado de sesión está limitado a la sesión de explorador actual Los valores se conservan mediante el uso de variables de aplicación y de sesión Escalabilidad La sesión ASP.NET se identifica con la cadena SessionID Servidor Web Equipo cliente Variables de aplicación y de sesión SessionID

7 Administración 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 administración del estado en el lado del servidor El usuario puede eliminar cookies Menos seguro que las opciones de administración del estado en el lado del servidor Cantidad de información limitada Restricciones en el lado del cliente en el tamaño de los archivos Servidor Web Equipo cliente Cookies

8 El archivo Global.asax Sólo un archivo Global.asax por aplicación Web
Almacenado en la raíz del directorio virtual de la aplicación Web Utilizado para gestionar eventos de aplicación y de sesión El archivo Global.asax es opcional

9 El archivo Global.asax (continuación)
Cliente Petición 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 Ejecución de la página

10 Lección: variables de aplicación y de sesión
Inicializar variables de aplicación y de sesión Utilizar variables de aplicación y de sesión Demostración: uso de las variables de sesión Duración de las variables de aplicación y de sesión Almacenamiento escalable de variables de aplicación y de sesión Almacenar las variables de aplicación y de sesión en una base de datos

11 Inicializar variables de aplicación y de sesión
Las variables se inicializan en Global.asax El objeto Application comparte información entre todos los usuarios de una aplicación Web El objeto Session almacena información para una sesión de usuario concreta 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; }

12 Utilizar variables de aplicación y de sesión
Establecer variables de aplicación y sesión Leer variables de aplicación y de sesión Session("BackColor") = "blue" Application.Lock() Application("NumberOfVisitors") += 1 Application.UnLock() Session["BackColor"] = "blue"; Application.Lock(); Application["NumberOfVisitors"] = (int)Application["NumberOfVisitors"] + 1; Application.UnLock(); strBgColor = Session("BackColor") lblNbVisitor.Text = Application("NumberOfVisitors") strBgColor = (string)Session["BackColor"]; lblNbVisitor.Text = Application["NumberOfVisitors"].ToString();

13 Demostración: uso de las variables de sesión
Inicializar una variable de sesión (un número) en global.asax Acceder a la variable de sesión desde una página Acceder a la variable de sesión desde otra página y modificarla Volver a acceder a la variable de sesión desde la primera página

14 Duración de la variable de aplicación y de sesión
Las variables de sesión tienen una duración establecida tras el último acceso 20 minutos es la duración predeterminada La duración de la sesión puede modificarse en Web.config: Las variables de aplicación persisten hasta que se provoca el evento Application_End <configuration> <system.web> <sessionState timeout="10" /> </system.web> </configuration>

15 Almacenamiento escalable de variables de aplicación y de sesión
Por defecto, el estado de sesión 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 sesión El estado puede almacenarse en una base de datos SQL Server o un servidor de estado Ventajas del almacenamiento fuera del proceso: Escalabilidad Servidor de estado Granja Web Variables de sesión y de aplicación -O- SQL Cliente Variables de sesión y de aplicación

16 Almacenar variables de aplicación y de sesión en una base de datos
Configurar el estado de sesión en Web.config Modo establecido a sqlserver o stateserver A continuación, configurar el servidor SQL Server OSQL crea varios procedimientos almacenados y bases de datos temporales para almacenar las variables 1 <sessionState mode="SQLServer" sqlConnectionString="data source=SQLServerName; Integrated security=true" /> 2 c:\> OSQL –S SQLServerName –E <InstallSqlState.sql

17 Lección: sesiones con y sin cookies
Utilizar cookies para almacenar datos de sesión Práctica dirigida por el instructor: utilizar variables y cookies Recuperar información de una cookie Uso de sesiones que no utilizan cookies Configurar sesiones que no utilizan cookies

18 Utilizar cookies para almacenar datos de sesión
Crear una cookie: La cookie contiene información sobre el nombre de dominio HttpCookie objCookie = new HttpCookie("myCookie"); DateTime now = DateTime.Now; objCookie.Values.Add("Time", now.ToString()); objCookie.Values.Add("ForeColor", "White"); objCookie.Values.Add("BackColor", "Blue"); objCookie.Expires = now.AddHours(1); Response.Cookies.Add(objCookie); HttpCookie objCookie = new HttpCookie("myCookie"); DateTime now = DateTime.Now; objCookie.Values.Add("Time", now.ToString()); objCookie.Values.Add("ForeColor", "White"); objCookie.Values.Add("BackColor", "Blue"); Response.Cookies.Add(objCookie); Para crear una cookie persistente, especificar el tiempo de expiración Set-Cookie: Username=John+Chen; path=/; domain=microsoft.com; Expires=Tuesday, 01-Feb GMT

19 Práctica dirigida por el instructor: utilizar variables y cookies
Los estudiantes: Aprenderán a utilizar las variables de aplicación y de sesión, y las cookies persistentes, para almacenar información del usuario Tiempo: 15 Minutos

20 Recuperar información de una cookie
Leer la cookie Recuperar valores de la cookie Dim objCookie As HttpCookie = Request.Cookies("myCookie") HttpCookie objCookie = Request.Cookies["myCookie"]; 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"]);

21 Uso de sesiones que no utilizan cookies
Cada sesión activa está identificada y se realiza su seguimiento utilizando IDs de sesión Los IDs de sesión se comunican entre peticiones cliente-servidor utilizando una cookie HTTP o incluyéndolos en la URL Sesiones que no utilizan cookies La información de ID de sesión está codificada en URLs No pueden utilizar URLs absolutas La mayoría de navegadores limitan el tamaño de la URL a 255 caracteres, lo cual limita el uso de IDs para las sesiones que no utilizan cookies

22 Configurar sesiones que no utilizan cookies
El estado de sesión se configura en la sección <SessionState> de Web.config Configurar cookieless = true <sessionState cookieless="true" />


Descargar ppt "Administración del estado"

Presentaciones similares


Anuncios Google