|
Cookies en ASP.NET
Publicado: 10/07/2006
Leído: 7887 veces
Lectura: 0 minutos
|
Categoría: ASP.NET General
Valoracion: 5,806539
|
|
Las cookies son una parte muy importante en todas las aplicaciones Web.
Si bien nunca se recomienda basar una aplicación en el funcionamiento de las cookies (ya que el usuario siempre puede borrarlas y/o modificarlas), éstas nos ofrecen la posibilidad a los webmasters de dar muchos y buenos servicios a nuestros usuarios.
Y como siempre, si unimos la palabra webmaster con la de ASP.NET, nos da como resultado la facilidad. Y es que si trabajar con cookies ha sido siempre sencillo en antiguos lenguajes como ASP o PHP, con ASP.NET lo es mucho más, pero además se le une la orientación a objetos y el tipado de las cookies.
En ASP.NET las cookies se manejan con HttpCookie, que está dentro del namespace System.Web.
Pero vayamos al grano con los usos típicos que se les hace a las cookies:
1.- Crear una cookie // Creamos elemento HttpCookie con su nombre y su valor HttpCookie addCookie = new HttpCookie("subgurim", DateTime.Now.ToString()); // Si queremos le asignamos un fecha de expiración: mañana addCookie.Expires = DateTime.Today.AddDays(1).AddSeconds(-1); // Y finalmente ñadimos la cookie a nuestro usuario Response.Cookies.Add(addCookie);
2.- Recoger una cookie // Recogemos la cookie que nos interese HttpCookie cogeCookie = Request.Cookies.Get("subgurim");
// O a la antigua usanza, que es lo mismo pero me gusta menos // HttpCookie cogeCookie = Request.Cookies["subgurim"];
// O mostramos todas las cookies por pantalla foreach (HttpCookie cookie in Request.Cookies) { Response.Write(cookie.Name + ":" + cookie.Value + "<br />"); }
3.- Modificar una cookie // Puede darse el caso que lo que queramos es modificar una cookie // Por ejemplo vamos a cambiar el tiempo de expiración de la cookie que creamos al principio HttpCookie modificaCookie = Request.Cookies.Get("subgurim"); modificaCookie.Expires = DateTime.Now.AddDays(7); Response.Cookies.Set(modificaCookie);
4.- Borrar una cookie // Borrarla es realmente sencillo Response.Cookies.Remove("subgurim");
// O si quieres borrarlas todas... Response.Cookies.Clear();
5.- Cookies multidimensionales Sí, ya lo sé, una sóla cookie puede contener varios valores... pero ASP.NET nos lo sigue poniendo muy sencillo. Veamos cómo creamos una cookie multidimensional y cómo la recogemos. Por extensión sabemos ya modificar esa cookie así como borrarla.
5.1 - Crear cookie multidimensional HttpCookie addMultiCookie = new HttpCookie("subgurimMultidimensional"); for (int i = 0; i < 10; i++) { // Mi modo preferido addMultiCookie.Values.Add(i.ToString(), "Elemento " + i.ToString()); // Modo antiguo y que no me gusta //addMultiCookie[i.ToString()] = "Elemento " + i.ToString(); } Response.Cookies.Add(addMultiCookie);
Como observamos, la única diferencia es que accedemos a la colección Values (System.Collections.Specialized.NameValueCollection), y en ella podemos ejecutar lo mismo que en cualquier otro tipo de colección.
5.2 Recoger cookie multidimensional HttpCookie cogeMultiCookie = Request.Cookies.Get("subgurimMultidimensional"); // Accedemos a cualquiera de los valores. // Por ejemplo, en este caso recogemos el valor de la cookie cuyo nombre es "5" string valorCualquiera = cogeMultiCookie.Values.Get("5");
Nota: Fijaos en que siempre que recogemos una cookie, utilizamos Request, y cuando la modificamos o borramos, utilizamos Response. Nota 2: El objeto HttpCookie sólo contiene a la cookie, si queremos darle valor a los cambios que le hagamos, siempre debemos utilizar el Response y el Request.
|
Ante cualquier duda o sugerencia sobre este artículo, coméntalo en el
foro de ASP.NET
de nuestra Web Amiga sobre
asp.net
|
|