Administración del estado
Descripción <ul><li>Administración del estado </li></ul><ul><li>Variables de aplicación y de sesión </li></ul><ul><li>Cook...
Lección: administración del estado <ul><li>¿Qué es la administración del estado? </li></ul><ul><li>Tipos de administración...
¿Qué es la administración del estado? Nombre Apellido Introduzca su información de inicio de sesión: John Enviar Chen Serv...
Tipos de Administración del estado <ul><li>Cadenas de consulta  </li></ul><ul><li>Información añadida al final de una  URL...
Administración del estado en el lado del servidor <ul><li>El estado de la aplicación es un mecanismo de almacenamiento glo...
Administración del estado en el lado del cliente <ul><li>Utiliza cookies para mantener el estado </li></ul><ul><ul><li>Coo...
El archivo Global.asax <ul><li>Sólo un archivo Global.asax por aplicación Web </li></ul><ul><li>Almacenado en la raíz del ...
El archivo Global.asax ( continuación ) Servidor Web ASP.NET Cliente ASP.NET HTTP Runtime IIS Application_BeginRequest App...
Lección: variables de aplicación y de sesión <ul><li>Inicializar variables de aplicación y de sesión </li></ul><ul><li>Uti...
Inicializar variables de aplicación y de sesión <ul><li>Las variables se inicializan en Global.asax </li></ul><ul><ul><li>...
Utilizar variables de aplicación y de sesión <ul><li>Establecer variables de aplicación y sesión </li></ul><ul><li>Leer va...
Demostración: uso de las variables de sesión <ul><li>Inicializar una variable de sesión (un número) en global.asax </li></...
Duración de la variable de aplicación y de sesión <ul><li>Las variables de sesión tienen una duración establecida tras el ...
Almacenamiento escalable de variables de aplicación y de sesión <ul><li>Por defecto, el estado de sesión se administra en ...
Almacenar variables de aplicación y de sesión en una base de datos <ul><li>Configurar el estado de sesión en Web.config </...
Lección: sesiones con y sin cookies <ul><li>Utilizar cookies para almacenar datos de sesión </li></ul><ul><li>Práctica dir...
Utilizar cookies para almacenar datos de sesión <ul><li>Crear una cookie: </li></ul><ul><li>La cookie contiene información...
Práctica dirigida por el instructor: utilizar variables y cookies <ul><li>Los estudiantes: </li></ul><ul><ul><li>Aprenderá...
Recuperar información de una cookie <ul><li>Leer la cookie </li></ul><ul><li>Recuperar valores de la cookie  </li></ul>lbl...
Uso de sesiones que no utilizan cookies <ul><li>Cada sesión activa está identificada y se realiza su seguimiento utilizand...
Configurar sesiones que no utilizan cookies <ul><li>El estado de sesión se configura en la sección <SessionState> de Web.c...
Próxima SlideShare
Cargando en…5
×

12. Administracion Del Estado

2.993 visualizaciones

Publicado el

0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.993
En SlideShare
0
De insertados
0
Número de insertados
33
Acciones
Compartido
0
Descargas
81
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

12. Administracion Del Estado

  1. 1. Administración del estado
  2. 2. Descripción <ul><li>Administración del estado </li></ul><ul><li>Variables de aplicación y de sesión </li></ul><ul><li>Cookies y sesiones que no utilizan cookies </li></ul>
  3. 3. Lección: administración del estado <ul><li>¿Qué es la administración del estado? </li></ul><ul><li>Tipos de administración del estado </li></ul><ul><li>Administración del estado en el lado del servidor </li></ul><ul><li>Administración del estado en el lado del cliente </li></ul><ul><li>El archivo Global.asax </li></ul>
  4. 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 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. 5. Tipos de Administración del estado <ul><li>Cadenas de consulta </li></ul><ul><li>Información añadida al final de una URL </li></ul><ul><li>Base de datos </li></ul><ul><li>En algunos casos, se utiliza el soporte de base de datos para mantener el estado en el sitio Web </li></ul><ul><li>Propiedad ViewState </li></ul><ul><li>Conserva valores entre múltiples peticiones para la misma página </li></ul><ul><li>Estado de sesión </li></ul><ul><li>La información está disponible únicamente para el usuario de una sesión específica </li></ul><ul><li>Cookies </li></ul><ul><li>Archivo de texto que almacena información para mantener el estado </li></ul><ul><li>Estado de la aplicación </li></ul><ul><li>La información está disponible para todos los usuarios de una aplicación Web </li></ul>Administración del estado en el lado del cliente Administración del estado en el lado del servidor
  6. 6. Administración del estado en el lado del servidor <ul><li>El estado de la aplicación es un mecanismo de almacenamiento global accesible desde todas las páginas de la aplicación Web </li></ul><ul><li>El estado de sesión está limitado a la sesión de explorador actual </li></ul><ul><ul><li>Los valores se conservan mediante el uso de variables de aplicación y de sesión </li></ul></ul><ul><ul><li>Escalabilidad </li></ul></ul><ul><li>La sesión ASP.NET se identifica con la cadena SessionID </li></ul>Servidor Web Equipo cliente Variables de aplicación y de sesión SessionID
  7. 7. Administración del estado en el lado del cliente <ul><li>Utiliza cookies para mantener el estado </li></ul><ul><ul><li>Cookies persistentes </li></ul></ul><ul><ul><li>Cookies temporales/no persistentes </li></ul></ul><ul><li>Menos fiable que las opciones de administración del estado en el lado del servidor </li></ul><ul><ul><li>El usuario puede eliminar cookies </li></ul></ul><ul><li>Menos seguro que las opciones de administración del estado en el lado del servidor </li></ul><ul><li>Cantidad de información limitada </li></ul><ul><ul><li>Restricciones en el lado del cliente en el tamaño de los archivos </li></ul></ul>Servidor Web Equipo cliente Cookies
  8. 8. El archivo Global.asax <ul><li>Sólo un archivo Global.asax por aplicación Web </li></ul><ul><li>Almacenado en la raíz del directorio virtual de la aplicación Web </li></ul><ul><li>Utilizado para gestionar eventos de aplicación y de sesión </li></ul><ul><li>El archivo Global.asax es opcional </li></ul>
  9. 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. 10. Lección: variables de aplicación y de sesión <ul><li>Inicializar variables de aplicación y de sesión </li></ul><ul><li>Utilizar variables de aplicación y de sesión </li></ul><ul><li>Demostración: uso de las variables de sesión </li></ul><ul><li>Duración de las variables de aplicación y de sesión </li></ul><ul><li>Almacenamiento escalable de variables de aplicación y de sesión </li></ul><ul><li>Almacenar las variables de aplicación y de sesión en una base de datos </li></ul>
  11. 11. Inicializar variables de aplicación y de sesión <ul><li>Las variables se inicializan en Global.asax </li></ul><ul><ul><li>El objeto Application comparte información entre todos los usuarios de una aplicación Web </li></ul></ul><ul><ul><li>El objeto Session almacena información para una sesión de usuario concreta </li></ul></ul>Sub Application_Start(s As Object,e As EventArgs) Application(&quot;NumberofVisitors&quot;) = 0 End Sub protected void Application_Start(Object sender,EventArgs e) { Application[&quot;NumberofVisitors&quot;] = 0; }
  12. 12. Utilizar variables de aplicación y de sesión <ul><li>Establecer variables de aplicación y sesión </li></ul><ul><li>Leer variables de aplicación y de sesión </li></ul>Session(&quot;BackColor&quot;) = &quot;blue&quot; Application.Lock() Application(&quot;NumberOfVisitors&quot;) += 1 Application.UnLock() strBgColor = Session(&quot;BackColor&quot;) lblNbVisitor.Text = Application(&quot;NumberOfVisitors&quot;) Session[&quot;BackColor&quot;] = &quot;blue&quot;; Application.Lock(); Application[&quot;NumberOfVisitors&quot;] = (int)Application[&quot;NumberOfVisitors&quot;] + 1; Application.UnLock(); strBgColor = (string)Session[&quot;BackColor&quot;]; lblNbVisitor.Text = Application[&quot;NumberOfVisitors&quot;].ToString();
  13. 13. Demostración: uso de las variables de sesión <ul><li>Inicializar una variable de sesión (un número) en global.asax </li></ul><ul><li>Acceder a la variable de sesión desde una página </li></ul><ul><li>Acceder a la variable de sesión desde otra página y modificarla </li></ul><ul><li>Volver a acceder a la variable de sesión desde la primera página </li></ul>
  14. 14. Duración de la variable de aplicación y de sesión <ul><li>Las variables de sesión tienen una duración establecida tras el último acceso </li></ul><ul><ul><li>20 minutos es la duración predeterminada </li></ul></ul><ul><li>La duración de la sesión puede modificarse en Web.config: </li></ul><ul><li>Las variables de aplicación persisten hasta que se provoca el evento Application_End </li></ul><configuration> <system.web> <sessionState timeout=&quot;10&quot; /> </system.web> </configuration>
  15. 15. Almacenamiento escalable de variables de aplicación y de sesión <ul><li>Por defecto, el estado de sesión se administra en proceso (in process) </li></ul><ul><li>Inconveniente del almacenamiento en proceso: </li></ul><ul><ul><li>No escalable </li></ul></ul><ul><li>ASP.NET proporciona almacenamiento fuera del proceso (out of process) del estado de sesión </li></ul><ul><ul><li>El estado puede almacenarse en una base de datos SQL Server o un servidor de estado </li></ul></ul><ul><li>Ventajas del almacenamiento fuera del proceso: </li></ul><ul><ul><li>Escalabilidad </li></ul></ul>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. 16. Almacenar variables de aplicación y de sesión en una base de datos <ul><li>Configurar el estado de sesión en Web.config </li></ul><ul><ul><li>Modo establecido a sqlserver o stateserver </li></ul></ul><ul><li>A continuación, configurar el servidor SQL Server </li></ul><ul><ul><li>OSQL crea varios procedimientos almacenados y bases de datos temporales para almacenar las variables </li></ul></ul><sessionState mode=&quot;SQLServer&quot; sqlConnectionString=&quot;data source= SQLServerName ; Integrated security=true&quot; /> c:> OSQL –S SQLServerName –E <InstallSqlState.sql 1 2
  17. 17. Lección: sesiones con y sin cookies <ul><li>Utilizar cookies para almacenar datos de sesión </li></ul><ul><li>Práctica dirigida por el instructor: utilizar variables y cookies </li></ul><ul><li>Recuperar información de una cookie </li></ul><ul><li>Uso de sesiones que no utilizan cookies </li></ul><ul><li>Configurar sesiones que no utilizan cookies </li></ul>
  18. 18. Utilizar cookies para almacenar datos de sesión <ul><li>Crear una cookie: </li></ul><ul><li>La cookie contiene información sobre el nombre de dominio </li></ul>HttpCookie objCookie = new HttpCookie(&quot;myCookie&quot;); DateTime now = DateTime.Now; objCookie.Values.Add(&quot;Time&quot;, now.ToString()); objCookie.Values.Add(&quot;ForeColor&quot;, &quot;White&quot;); objCookie.Values.Add(&quot;BackColor&quot;, &quot;Blue&quot;); Response.Cookies.Add(objCookie); HttpCookie objCookie = new HttpCookie(&quot;myCookie&quot;); DateTime now = DateTime.Now; objCookie.Values.Add(&quot;Time&quot;, now.ToString()); objCookie.Values.Add(&quot;ForeColor&quot;, &quot;White&quot;); objCookie.Values.Add(&quot;BackColor&quot;, &quot;Blue&quot;); 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-05 00.00.01 GMT
  19. 19. Práctica dirigida por el instructor: utilizar variables y cookies <ul><li>Los estudiantes: </li></ul><ul><ul><li>Aprenderán a utilizar las variables de aplicación y de sesión, y las cookies persistentes, para almacenar información del usuario </li></ul></ul><ul><li>Tiempo: 15 Minutos </li></ul>
  20. 20. Recuperar información de una cookie <ul><li>Leer la cookie </li></ul><ul><li>Recuperar valores de la cookie </li></ul>lblTime.Text = objCookie.Values(&quot;Time&quot;) lblTime.ForeColor = System.Drawing.Color.FromName _ (objCookie.Values(&quot;ForeColor&quot;)) lblTime.BackColor = System.Drawing.Color.FromName _ (objCookie.Values(&quot;BackColor&quot;)) Dim objCookie As HttpCookie = Request.Cookies(&quot;myCookie&quot;) HttpCookie objCookie = Request.Cookies[&quot;myCookie&quot;]; lblTime.Text = objCookie.Values[&quot;Time&quot;]; lblTime.ForeColor = System.Drawing.Color.FromName (objCookie.Values[&quot;ForeColor&quot;]); lblTime.BackColor = System.Drawing.Color.FromName (objCookie.Values[&quot;BackColor&quot;]);
  21. 21. Uso de sesiones que no utilizan cookies <ul><li>Cada sesión activa está identificada y se realiza su seguimiento utilizando IDs de sesión </li></ul><ul><li>Los IDs de sesión se comunican entre peticiones cliente-servidor utilizando una cookie HTTP o incluyéndolos en la URL </li></ul><ul><li>Sesiones que no utilizan cookies </li></ul><ul><ul><li>La información de ID de sesión está codificada en URLs </li></ul></ul><ul><ul><li>No pueden utilizar URLs absolutas </li></ul></ul><ul><ul><li>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 </li></ul></ul>http://server/(h44a1e55c0breu552yrecobl)/page.aspx
  22. 22. Configurar sesiones que no utilizan cookies <ul><li>El estado de sesión se configura en la sección <SessionState> de Web.config </li></ul><ul><li>Configurar cookieless = true </li></ul><sessionState cookieless=&quot;true&quot; />

×