La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Administración del estado. Descripción Administración del estado Variables de aplicación y de sesión Cookies y sesiones que no utilizan cookies."— 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? Nombre Apellido Introduzca su información de inicio de sesión: John Enviar Chen Servidor Web Login.aspx Servidor Web Hola John Chen Greetings.aspx Introduzca su información de inicio de sesión: John Enviar Chen Hola Greetings.aspx ¡¡He olvidado quién eres!! Nombre Apellido Sin administración del estado Con administración del estado

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 ) Servidor Web ASP.NET Cliente ASP.NET HTTP Runtime IIS Application_BeginRequest Application_AuthenticateRequest Application_AuthorizeRequest Application_ResolveRequestCache Application_AquireRequestState Application_PreRequestHandlerExecute Application_EndRequest Application_UpdateRequestCache Application_ReleaseRequestState Application_PostRequestHandlerExecute Ejecución de la página Petición Respuesta

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 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; } 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") += 1 Application.UnLock() strBgColor = Session("BackColor") lblNbVisitor.Text = Application("NumberOfVisitors") strBgColor = Session("BackColor") lblNbVisitor.Text = Application("NumberOfVisitors") Session["BackColor"] = "blue"; Application.Lock(); Application["NumberOfVisitors"] = (int)Application["NumberOfVisitors"] + 1; Application.UnLock(); Session["BackColor"] = "blue"; Application.Lock(); Application["NumberOfVisitors"] = (int)Application["NumberOfVisitors"] + 1; Application.UnLock(); strBgColor = (string)Session["BackColor"]; lblNbVisitor.Text = Application["NumberOfVisitors"].ToString(); 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

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 SQL Variables de sesión y de aplicación Cliente Granja Web Variables de sesión y de aplicación -O- Servidor de estado

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 c:\> OSQL –S SQLServerName –E

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"); 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); 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"); objCookie.Expires = now.AddHours(1); 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 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 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")) 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 de Web.config Configurar cookieless = true


Descargar ppt "Administración del estado. Descripción Administración del estado Variables de aplicación y de sesión Cookies y sesiones que no utilizan cookies."

Presentaciones similares


Anuncios Google