Acceder a las cookies con ASP

02/Oct/2009 ASP , , , Deja un comentario

Las cookies son ficheros de información que van dejando las páginas web. En dicha información podemos encontrar múltiples cosas, unas veces información legible, otras encriptada, pero siempre relativa al usuario.

Solamente podremos acceder a cookies que hayan sido generadas en nuestro dominio. Es decir, nunca podremos acceder a la información de cookies de otra página web desde la nuestra. Es por ello que es un mecanismo con limitaciones de seguridad.

Si queremos acceder a las cookies con ASP lo primero que debemos de hacer es acceder a la colección que contiene las mismas. Esta colección se encuentra en el objeto Request y se llama Cookies. Debido a que la información sobre las cookies nos viene almacenada en una colección podemos aprovechar la secuencia de control for-each para recorrer dicha colección.

  1. for each item in Request.Cookies
  2. ...
  3. next

Las cookies pueden ser de dos tipos. Aquellas que solo tengan un par nombre/valor o las que sean una colección de pares nombre/valor. En el primer caso, el sencillo, nos valdrá con indicar el nombre de la cookie para obtener su valor.

  1. for each item in Request.Cookies
  2. Response.Write "<p><strong>" + item + "</strong>:" + Request.Cookies(item) + "</p>"
  3. next

En los casos de que la cookie almacene un conjunto de parejas clave/atributo y si queremos desglosar esta información podemos utilizar el método .HasKeys el cual nos dice si la información es un valor o un conjunto de parejas clave/atributo.

Si no utilizamos el método .HasKeys nos devolverá información del tipo:

NORMAL=blue&ACTIVO=red&VISITADO=red

Si queremos desglosar esta información, volvemos a utilizar una estructura for-each:

  1. for each item in Request.Cookies
  2. if Request.Cookies(item).HasKeys then
  3. 'La cookie es una colección
  4. Response.Write("<p>La cookie <b>" + item
  5. + "</b> tiene un conjuno de parejas clave/atributo.")
  6. for each subitem in Request.Cookies(item)
  7. Response.Write "<br><strong>" + subitem + "</strong>:"
  8. + Request.Cookies(item)(subitem)
  9. next
  10. Response.Write("</p>")
  11. end if
  12. next

Si no tenemos cookies generadas en nuestro servidor, para poder ejecutar este ejemplo puedes generar cookies al principio del fichero. Para ello utilizamos el objeto Response y su colección Cookies de la siguiente forma:

  1.  
  2. <%
  3. 'Mandamos una serie de cookies para probar el ejemplo
  4. Response.Cookies("musicaPreferida") = "pop"
  5. Response.Cookies("peliculaPreferida") = "Espartaco"
  6. Response.Cookies("musicaPreferida").expires = "12/12/2009"
  7.  
  8. Response.Cookies("enlace")("normal") = "blue"
  9. Response.Cookies("enlace")("visitado") = "red"
  10. Response.Cookies("enlace")("activo") = "red"
  11.  
  12. %>
  13. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  14. <html><body></body></html>
  15.  

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*