post icon

Como utilizar Cookies en Asp.Net

Desde la Web 1.0 que venimos escuchando y utilizando las cookies, hasta hoy día se conserva su uso aunque ya en menor medida. Principalmente su fin es almacenar información no relevante ni crítica del usuario, en su propia máquina, lo típico es almacenar información de navegación, usos del sitio, preferencias del mismo, etc.

El servidor solicita la creación y lectura de los mismo, pero quién finalmente la gestiona es el cliente, es por eso que debemos prever su uso, ya que el usuario puede tener un configuración de seguridad muy estricta que no permita su utilización, por lo que no debemos ser muy dependientes de las cookies.

Otros factores que debemos tener en cuenta, es que allí no tenemos que almacenar información relevante, como password, connections strings, datos de acceso clasificado, etc. ya que ellas son simples ficheros de texto plano, que se almacenan temporalmente en la PC, y puede ser accedida e incluso modificada por cualquiera sin requerir de grandes conocimientos.

Vamos al grano, y veamos un ejemplo muy sencillo, creamos el siguiente WebForm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cookies.aspx.cs" Inherits="Examples_Cookies" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
 
    <div>
    <asp:Label ID="lblMensaje" runat="server" Text=""></asp:Label>
        <br />
        <asp:TextBox ID="txtNombre" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    </div>
    </form>
</body>
</html>

El archivo básicamente contiene una etiqueta para mostrar el valor de la cookie, una caja de texto para almacenar su contenido en la cookie y un boton para crear la cookie. En el evento Load de la página cargaremos el valor de la cookie en la etiqueta si ya existe, sino, mostraremos un mensaje.

1
2
3
4
5
6
7
8
9
protected void Page_Load(object sender, EventArgs e)
{
        HttpCookie cookie = Request.Cookies["Preferencias"];
 
        if (cookie == null)
            this.lblMensaje.Text = "No hay preferencias definidas";
        else
            this.lblMensaje.Text = cookie["Nombre"].ToString();
}

Y el evento click, se encargará de asignar valor a nuestra cookie que creamos, y volverá a mostrar su contenido en la etiqueta, de paso vemos como asignar fechas de expiración de las cookies

1
2
3
4
5
6
7
8
9
10
protected void Button1_Click(object sender, EventArgs e)
{
        HttpCookie cookie = Request.Cookies["Preferencias"];
        if (cookie == null)
            cookie = new HttpCookie("Preferencias");
        cookie["Nombre"] = this.txtNombre.Text;
        cookie.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(cookie);
        this.lblMensaje.Text = this.txtNombre.Text;
}

Podrán comprobar su válidez y funcionamiento, cargando una cookie con el boton, cerrando el browser y volviendo a abrirlo, verán que aun se conservará el valor anteriormente creado.

Comentarios desde Facebook:

  1. avatar
    ales MEXICO Google Chrome Windows
    23 Abril 2013 at 15:15 #

    buen codigo

Responder