Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Administracion Del Estado PDF
Administracion Del Estado PDF
ndice
Descripcin
17
Descripcin
***
Introduccin
Objetivos
El archivo Global.asax
***
Introduccin
Objetivos de la leccin
Login.aspx
Login.aspx
Introduzca su informacin
de inicio de sesin:
Nombre
John
Introduzca su informacin
de inicio de sesin:
Nombre
John
Apellido
Chen
Apellido
Chen
Enviar
Enviar
Greetings.aspx
Hola
Servidor Web
Enviar
Enviar
Servidor Web
Greetings.aspx
Hola John Chen
He
Heolvidado
olvidado
quin
quineres!!
eres!!
***
Introduccin
Administracin del
estado
Ejemplo
Estado de sesin
Base de datos
Administraci
Administracin del estado en
el lado del cliente
Cookies
Propiedad ViewState
Cadenas de consulta
***
Introduccin
Administracin del
estado en el lado del
cliente y en el lado del
servidor
Lado servidor
Las opciones de la administracin del estado en el lado del servidor utilizan
recursos del servidor para almacenar la informacin del estado. La
seguridad de estas opciones es mayor que en el lado del cliente.
Lado cliente
La administracin del estado en el lado del cliente no utiliza recursos del
servidor para almacenar la informacin del estado. Las opciones en el lado
del cliente tienden a tener seguridad mnima, pero ofrecen un rpido
rendimiento del servidor porque no existe demanda en el servidor para
mantener el estado.
Lado servidor
Estado de aplicacin
En el estado de aplicacin, la informacin est disponible para todos los
usuarios de una aplicacin Web; por ejemplo, almacenar el nmero de
visitantes a una aplicacin Web.
Estado de sesin
El objeto Cache
Tambin podemos utilizar el objeto Cache para administrar el estado a nivel
de aplicacin.
Lado cliente
Cookies
Una cookie es un archivo de texto que puede utilizarse para almacenar
pequeas cantidades de informacin necesarias para mantener el estado.
La propiedad ViewState
Los formularios Web Forms proporcionan la propiedad ViewState como
una estructura incluida para conservar automticamente valores entre
mltiples peticiones a la misma pgina. La propiedad ViewState se
mantiene como un campo oculto en la pgina.
Cadenas de consulta
Una cadena de consulta es informacin que se aade al final de una URL
(Uniform Resource Locator). Un ejemplo tpico podra ser el siguiente:
http://www.contoso.com/listwidgets.aspx?category=basic&price=100
En la ruta URL anterior, la cadena de consulta se inicia con un signo de
interrogacin (?) e incluye dos pares atributo-valor, categora y precio.
***
Introduccin
Estado de aplicacin
Variables de aplicacin
Estado de sesin
El estado de sesin est almacenado como una estructura de diccionario clavevalor que se utiliza par almacenar informacin especfica de la sesin que debe
mantenerse entre transferencias de pginas al servidor y entre peticiones de
pginas. Tras agregar la informacin especfica de la aplicacin al estado de
sesin, el servidor la gestiona. Podemos configurar ASP.NET para
automticamente serialice y almacene la informacin de sesin en una base de
datos SQL Server o en un servidor de estado.
Variables de sesin
Escalabilidad
Identificar y hacer el
seguimiento de una
sesin
10
Cookies persistentes
Menos fiable que las opciones de administracin del estado en el lado del
servidor
z
Servidor Web
Equipo cliente
Cookies
***
Introduccin
Cookies
Tipos de cookies
Temporales
Las cookies temporales, tambin denominadas cookies de sesin o no
persistentes, existen nicamente en la memoria del navegador. Cuando el
ste se apaga, las cookies temporales que se han aadido se pierden.
Persistentes
Las cookies persistentes son similares a las cookies temporales, excepto en
que las cookies persistentes tienen un periodo de expiracin fijo. Cuando un
navegador solicita una pgina que crea una cookie persistente, ste guarda
esa cookie en el disco duro del usuario. Podemos crear una cookie
persistente que dure meses, o incluso aos, en el equipo cliente. Con
Microsoft Internet Explorer, las cookies persistentes se almacenan en un
11
12
Vencimiento
Las cookies pueden expirar cuando finaliza la sesin del explorador (cookies
temporales), o pueden existir indefinidamente en el equipo cliente, dependiendo
de las reglas de expiracin del cliente (cookies persistentes).
Los usuarios tambin pueden decidir eliminar cookies de su equipo antes de que
stas expiren. Por tanto, no existe garanta de que una cookie persistente
permanecer en el equipo de un usuario durante el periodo de tiempo
especificado.
Seguridad
Las cookies son menos seguras si las comparamos con las opciones de
administracin del estado en el lado del servidor. Las cookies tambin estn
sujetas a la manipulacin. Lo usuarios pueden manipular cookies en su equipo,
lo que puede representar potencialmente un compromiso de seguridad o puede
hacer que la aplicacin que depende de la cookie pueda fallar.
Informacin limitada
13
El archivo Global.asax
***
Introduccin
14
Peticin
Peticin
Respuesta
Respuesta
Application_EndRequest
Application_EndRequest
Application_ResolveRequestCache
Application_ResolveRequestCache
Application_UpdateRequestCache
Application_UpdateRequestCache
Application_AquireRequestState
Application_AquireRequestState
Application_ReleaseRequestState
Application_ReleaseRequestState
Application_PreRequestHandlerExecute
Application_PreRequestHandlerExecute
Application_PostRequestHandlerExecute
Application_PostRequestHandlerExecute
Ejecucin
Ejecucin de
de la
la pgina
pgina
***
Introduccin
Categoras de eventos
Eventos invocados
cuando se solicita una
pgina
La siguiente tabla lista los eventos que se invocan cuando se solicita una
pgina.
Nombre del evento
Descripcin
Application_BeginRequest
Application_AuthenticateRequest
Application_AuthorizeRequest
Application_ResolveRequestCache
Application_AcquireRequestState
15
16
Eventos invocados
cuando se enva la
pgina solicitada
Eventos de aplicacin
condicionales
Descripcin
Application_PostRequestHandlerExecute
Application_ReleaseRequestState
Application_UpdateRequestCache
Application_EndRequest
Descripcin
Application_Start
Application_End
Session_Start
Session_End
Application_Error
17
***
Introduccin
Objetivos de la leccin
18
Sub
Sub Application_Start(s
Application_Start(s As
As Object,e
Object,e As
As EventArgs)
EventArgs)
Application("NumberofVisitors")
=
Application("NumberofVisitors") = 00
End
End Sub
Sub
protected
protected void
void Application_Start(Object
Application_Start(Object sender,EventArgs
sender,EventArgs e)
e)
{{
Application["NumberofVisitors"]
Application["NumberofVisitors"] == 0;
0;
}}
z
***
Introduccin
Variables de sesin
C#
Variables de aplicacin
19
C#
20
Session("BackColor")
Session("BackColor") == "blue"
"blue"
Application.Lock()
Application.Lock()
Application("NumberOfVisitors")
Application("NumberOfVisitors") +=
+= 11
Application.UnLock()
Application.UnLock()
Session["BackColor"]
Session["BackColor"] == "blue";
"blue";
Application.Lock();
Application.Lock();
Application["NumberOfVisitors"]
Application["NumberOfVisitors"] ==
(int)Application["NumberOfVisitors"]
(int)Application["NumberOfVisitors"] ++ 1;
1;
Application.UnLock();
Application.UnLock();
strBgColor
strBgColor == Session("BackColor")
Session("BackColor")
lblNbVisitor.Text
lblNbVisitor.Text == Application("NumberOfVisitors")
Application("NumberOfVisitors")
strBgColor
strBgColor == (string)Session["BackColor"];
(string)Session["BackColor"];
lblNbVisitor.Text
lblNbVisitor.Text == Application["NumberOfVisitors"].ToString();
Application["NumberOfVisitors"].ToString();
***
Introduccin
Establecer variables de
aplicacin y de sesin
Application.Lock()
Application("NumberOfVisitors") += 1
Application.UnLock()
C#
Application.Lock();
Application["NumberofVisitors"] =
(int)Application["NumberOfVisitors"] + 1;
Application.UnLock();
Leer variables de
aplicacin y de sesin
Visual Basic.NET
strBgColor = Session("BackColor")
lblNbVisitor.Text = Application("NumberOfVisitors")
C#
strBgColor = (string)Session["BackColor"];
lblNbVistitor.Text =
Application["NumberofVisitors"].ToString();
21
22
***
Introduccin
Ejecutar la demostracin
1. Abrir el proyecto Demo12VB o Demo12CS.
2. Abrir la pgina de cdigo subyacente de global.asax.
3. Inicializar una variable de sesin, denominada intNumber a 3, agregando el
siguiente cdigo al procedimiento de evento Session_Start:
Visual Basic .NET
Session("intNumber") = 3
C#
Session["intNumber"] = 3;
23
***
Introduccin
Duracin
predeterminada de la
sesin
Modificar la duracin de
la sesin
24
Variable de aplicacin
25
No escalable
Escalabilidad
Servidor de estado
Granja Web
Variables de sesin y de aplicacin
-OSQL
Cliente
Variables de sesin y de aplicacin
***
Introduccin
Inconveniente del
almacenamiento en
proceso
Fuera de proceso
ASP.NET ofrece dos mtodos que pueden utilizarse para almacenar estado de
sesin fuera de proceso (out of process). Podemos:
26
27
1
1
<sessionState
<sessionState mode="SQLServer"
mode="SQLServer"
sqlConnectionString="data
sqlConnectionString="data source=SQLServerName;
source=SQLServerName;
Integrated
Integrated security=true"
security=true" />
/>
2
c:\>
c:\> OSQL
OSQL S
S SQLServerName
SQLServerName E
E <InstallSqlState.sql
<InstallSqlState.sql
z
***
Introduccin
Configura el estado de
sesin en el archivo
Web.config de nuestro
servidor Web ASP.NET
Configurar el servidor
SQL Server
28
29
***
Introduccin
Las cookies son un medio por el cual la aplicacin Web que se ejecuta en el
servidor Web puede hacer que un cliente devuelva informacin al servidor Web
con cada solicitud HTTP. La devolucin de informacin puede utilizarse para
mantener el estado con el cliente entre mltiples peticiones. Las cookies se
envan al cliente como parte del encabezado HTTP en una solicitud del cliente,
o se envan en una respuesta del servidor.
En esta leccin, estudiaremos cmo utilizar cookies para almacenar datos de
sesin, y cmo recuperar esos datos de una cookie. Tambin estudiaremos las
sesiones que no utilizan cookies y cmo se establecen.
Objetivos de la leccin
30
persistente, especificar
el tiempo de expiracin
***
Introduccin
C#
objCookie.Values.Add("Time", now.ToString())
objCookie.Values.Add("ForeColor", "White")
objCookie.Values.Add("BackColor", "Blue")
C#
objCookie.Values.Add("Time", now.ToString());
objCookie.Values.Add("ForeColor", "White");
objCookie.Values.Add("BackColor", "Blue");
objCookie.Expires = now.AddHours(1)
C#
31
32
Si no agregamos el cdigo anterior cuando creamos una cookie, sta ser una
cookie temporal. La cookie temporal se aade a la memoria del navegador, pero
no se almacenar en un archivo. Cuando el usuario cierra el explorador, la
cookie se elimina de la memoria.
Agregar el cdigo sobre el tiempo de expiracin convierte la cookie temporal
en una cookie persistente. La cookie persistente se guarda en el disco duro. Con
una cookie persistente, si el usuario cierra el explorador y lo abre de nuevo,
puede acceder a la misma pgina Web otra vez hasta que la cookie persistente
expire. La expiracin de la cookie persistente depende del tiempo de expiracin
establecido en el cdigo. En el cdigo anterior, la cookie persistente se
eliminar transcurrida una hora.
Nota Frecuentemente, las cookies persistentes a menudo se utilizan para
almacenar informacin sobre nombres e identificadores de usuario para que el
servidor pueda identificar a los usuarios cuando regresen al sitio Web.
El siguiente cdigo agrega la nueva cookie a la coleccin de cookies del objeto
Response:
Visual Basic .NET
Response.Cookies.Add(objCookie)
C#
Response.Cookies.Add(objCookie);
Las cookies que se almacenan en formato de archivo de texto son las cookies
persistentes. De forma predeterminada, este archivo se almacena en la carpeta
\Documents and Settings\NombreUsuario\Cookies.
Cuando las cookies persistentes se almacenan utilizando Internet Explorer, el
formato del archivo de texto es:
NombreUsuario@NombreDominio.txt
33
Los estudiantes:
z
Tiempo: 15 Minutos
***
Introduccin
Probar la funcionalidad
34
Visualizar el cdigo
1. En el cuadro de direccin de Windows Explorer, escribir:
\\mquinaprofesor\c$\inetpub\wwwroot\mod14VB o
\\mquinaprofesor\c$\inetpub\wwwroot\mod14CS
Y pulsar ENTER.
2. Abrir la pgina de cdigo subyacente de la pgina Default.aspx.
Qu dos acciones se producen en el procedimiento de evento
btnSubmit_Click?
_____________________________________________________________
_____________________________________________________________
3. En Windows Explorer, hacer doble clic en results.aspx.vb o results.aspx.cs
para abrir el archivo de pgina de cdigo subyacente results.aspx en
Visual Studio .NET.
En el procedimiento de evento Page_Load, cmo se almacena el nmero
de visitas en la pgina almacenada?
_____________________________________________________________
_____________________________________________________________
Por qu el cdigo se ubica en una instruccin If en el procedimiento de
evento Page_Load?
_____________________________________________________________
_____________________________________________________________
4. Cerrar Visual Studio .NET.
35
Visualizar la cookie
1. En Windows Explorer, ir al siguiente directorio del equipo:
c:\Documents and Settings\Student\Cookies
<<Note>>
36
Leer la cookie
Dim
Dim objCookie
objCookie As
As HttpCookie
HttpCookie == Request.Cookies("myCookie")
Request.Cookies("myCookie")
HttpCookie
HttpCookie objCookie
objCookie == Request.Cookies["myCookie"];
Request.Cookies["myCookie"];
lblTime.Text
lblTime.Text == objCookie.Values("Time")
objCookie.Values("Time")
lblTime.ForeColor
lblTime.ForeColor == System.Drawing.Color.FromName
System.Drawing.Color.FromName __
(objCookie.Values("ForeColor"))
(objCookie.Values("ForeColor"))
lblTime.BackColor
lblTime.BackColor == System.Drawing.Color.FromName
System.Drawing.Color.FromName __
(objCookie.Values("BackColor"))
(objCookie.Values("BackColor"))
lblTime.Text
lblTime.Text == objCookie.Values["Time"];
objCookie.Values["Time"];
lblTime.ForeColor
lblTime.ForeColor == System.Drawing.Color.FromName
System.Drawing.Color.FromName
(objCookie.Values["ForeColor"]);
(objCookie.Values["ForeColor"]);
lblTime.BackColor
lblTime.BackColor == System.Drawing.Color.FromName
System.Drawing.Color.FromName
(objCookie.Values["BackColor"]);
(objCookie.Values["BackColor"]);
***
Introduccin
Recuperar informacin de una cookie implica leer una cookie y recuperar los
pares clave/valor de la misma.
Visual Basic
C#
Recuperar valores de la
cookie
El siguiente cdigo muestra los valores que deben recuperarse de una cookie:
lblTime.Text = objCookie.Values("Time")
lblTime.ForeColor = System.Drawing.Color.FromName _
(objCookie.Values("ForeColor"))
lblTime.BackColor = System.Drawing.Color.FromName _
(objCookie.Values("BackColor"))
C#
lblTime.Text = objCookie.Values["Time"];
lblTime.ForeColor = System.Drawing.Color.FromName
(objCookie.Values["ForeColor"]);
lblTime.BackColor = System.Drawing.Color.FromName
(objCookie.Values["BackColor"]);
37
http://server/(h44a1e55c0breu552yrecobl)/page.aspx
http://server/(h44a1e55c0breu552yrecobl)/page.aspx
z
***
Introduccin
El marco de trabajo de las pginas ASP.NET incluye una opcin que habilita
sesiones que no utilizan cookies. Las sesiones que no utilizan cookies permiten
aprovechar el estado de sesin incluso con navegadores que tienen
deshabilitado el soporte de cookies.
Cuando un usuario realiza la primera peticin a un sitio Web teniendo
habilitado sesiones que no utilizan cookies, la URL que se utiliza para la
peticin se modifica automticamente para incluir el SessionID del usuario. Por
ejemplo, cuando un usuario solicita http://server/page.aspx, la solicitud se
modifica automticamente a:
http://server/(h44a1e55c0breu552yrecobl)/page.aspx
38
Limitacin de las
sesiones que no utilizan
cookies
39
<sessionState
<sessionState cookieless="true"
cookieless="true" />
/>
***
Introduccin