• No se han encontrado resultados

Administración de estado del lado del servidor

In document Libro_Guia_en_Espa_ol.pdf (página 118-123)

La administración de estado del lado del servidor utiliza recursos del servidor para almacenar la información de estado. Utilizando técnicas del lado del servidor se elimina la posibilidad de que un usuario tratara de hackear el código del lado del cliente o de leer los datos de la sesión. Sin embargo, el almacenar y procesar información de la sesión en el servidor incrementa la carga del servidor y requiere de recursos del servidor adicionales para servir las páginas Web.

ASP.NET soporta la administración de estado del lado del servidor en dos niveles:

Estado de Sesión: Una aplicación de ASP.NET crea una sesión única para

cada usuario que manda una solicitud para una aplicación. ASP.NET identifca distintivamente cada una de estas sesiones enviando un SessionId único a la URL solicitada. Este SessionId es enviado como una cookie o es incrustado en la URL, dependiendo de la confguración de la aplicación. La habilidad de únicamente identifcar y relacionar solicitudes puede ser utilizada para almacenar datos específcos de la sesión que también se conoce como estado de sesión de la aplicación Web. Un ejemplo común del estado de sesión es para almacenar el contenido de los carritos de compra para usuarios conforme navegan a través de la tienda basada en Web.

Estado de Aplicación: el estado de aplicación es utilizado para almacenar datos que son usados a los largo de la aplicación. El estado de aplicación puede ser accedido fácilmente a través de la propiedad Application de la clase Page. Esta propiedad proporciona acceso al objeto HttpApplicationState que almacena el estado de aplicación como una colección de pares de valores clave.

El siguiente ejercicio muestra cómo utilizar el estado de sesión. Este ejercicio utiliza dos formatos Web. El WebForm1.aspx obtiene un nombre de usuario y lo almacena en el estado de sesión. El formato entonces transfere al usuario al WebForm2.aspx, el cual recupera el nombre del usuario desde la sesión.

Æ

Utilizar el Estado de Sesión

PREPÁRESE. Para utilizar el estado de sesión, haga lo siguiente:

1. Agregue un nuevo proyecto basado en la plantilla de aplicación web vacía de ASP.NET a la solución Leccion04. Nombre el proyecto UtilizandoEstadoSesion.

2. Seleccione Proyecto, Agregar nuevo elemento. Seleccione la plantilla de Formulario Web. Nombre el archivo WebForm1.aspx

3. Cambie la etiqueta HTML, del WebForm1.aspx a lo siguiente:

<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”WebForm1.aspx.cs” Inherits=”UtilizandoEstadoSesion.WebForm1” %> <html xmlns=”http://www.w3.org/1999/xhtml”> <head runat=”server”> <title></title> Tome Nota El estado de sesión puede ser configurado para almacenarse en otro servidor o un Servidor SQL. Esto es muy útil cuando una solicitud del usuario puede ser procesada por uno de los muchos servidores en una granja Web- Una granja Web es una colección de servidores Web utilizados

colectivamente para servir un sitio Web. Las granjas Web son necesarias para el soporte de tráfico en sitios Web populares.

ETC IBEROÁMERICA

</head> <body>

<form id=”form1” runat=”server”> <div>

<asp:Label ID=”Label1” runat=”server” Text=”Introduzca su nombre:” /><br />

<asp:TextBox ID=”TextBox1” runat=”server” /> <br /><br />

<asp:Button ID=”Button1” runat=”server”

Text=”Submit” onclick=”Button1_Click” /> </div>

</form> </body> </html>

4. Haga clic derecho en la ventana del código y seleccione Ver Código desde el menú contextual para cambiar al archivo de código subyacente (WebForm1.aspx.cs). Remplace el código en este archivo con el siguiente código:

using System;

namespace UsingSessionState {

public partial class WebForm1 : System.Web.UI.Page

{

protected void Page_Load

(object sender, EventArgs e) {

if (Session[“Name”] != null)

Response.Redirect(“WebForm2.aspx”);

ETC IBEROÁMERICA

}

protected void Button1_Click (object sender, EventArgs e) { Session.Add(“Name”, TextBox1.Text); Response.Redirect(“WebForm2.aspx”); } } }

5. Agregue un nuevo formulario Web al proyecto (WebForm2.aspx). Cambie la etiqueta de la página a lo siguiente:

<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”WebForm2.aspx.cs” Inherits=”UsingSessionState.WebForm2” %> <html xmlns=”http://www.w3.org/1999/xhtml”> <head runat=”server”> <title></title> </head> <body>

<form id=”form1” runat=”server”> <div>

<asp:Label ID=”Label1” runat=”server” /><br /> <asp:Button ID=”Button1” runat=”server” Text=”Limpiar Sesión” onclick=”Button1_Click” /> </div> </form> </body>

ETC IBEROÁMERICA

www.pdftron.com

</html>

6. Cambie el código en el archivo de código subyacente (WebForm2.aspx.cs) en el formulario a lo siguiente:

using System;

namespace UsingSessionState {

public partial class WebForm2 : System.Web.UI.Page {

protected void Page_Load( object sender, EventArgs e) { if (Session[“Name”] != null) Label1.Text = String.Format( “Bienvenido,{0}”, Session[“Name”]); else Response.Redirect(“WebForm1.aspx”); }

protected void Button1_Click( object sender, EventArgs e) { Session.Remove(“Name”); Response.Redirect(“WebForm1.aspx”); } } }

7. Seleccione Depurar y después Inicie la depuración (o presione F5). La páginaWebForm1. aspxse abrirá en un navegador Web. Vera la página Web mostrada en la Figura 4-8.Introduzca un nombre y haga clic en el botón enviar. Esta página almacena el nombre introducido en el estado de sesión.

ETC IBEROÁMERICA

8. Será transferido al WebForm2.aspx mostrado en la Figura 4-9. WebForm2.aspx recupera el nombre de usuario desde el estado de sesión. En la misma ventana del navegador, de forma que está dentro de la misma sesión, intente acceder al WebForm1.aspx. Notará que mientras la sesión contenga una entrada de nombre, usted será re direccionado al WebForm2.aspx. Presione el botón de Limpiar Sesión. Esto limpia la sesión y usted es transferido al WebForm1. aspx.

ƒComprender el IIS Web Hosting

È EN RESUMEN

El Web hosting involucra el confgurar el servidor web con las confguraciones y archivos de código correcto de modo que los usuarios remotos pueden tener acceso satisfactoriamente a la aplicación Web.

Las aplicaciones de ASP.NET deben ser desarrolladas en un servidor Web de Servicios de Información de Internet (IIS). IIS es una parte integral de los sistemas operativos de Windows Server y proporciona toda la funcionalidad para hospedar sitios Web.

Implementar una aplicación de ASP.NET no es complicado ya que ASP.NET proporciona la implementación xcopy. Lo que signifca que todo lo que necesita hacer para implementar un sitio Web de ASP.NET a un servidor Web es copiar archivos a las ubicaciones correctas. Puede copiar archivos utilizando el comando xcopy de Windows o utilizando una aplicación del Protocolo de Transferencia de Archivos (FTP).

Figura 4-8 La página almacena el nombre introducido al estado de sesión Figura 4-9 La página recupera el nombre visualizado desde el estado de sesión

;¿Listo para la certificación?

¿Comprende las bases del desarrollo de una aplicación Web en Microsoft ASP.NET? — USD 4.2

ETC IBEROÁMERICA

In document Libro_Guia_en_Espa_ol.pdf (página 118-123)