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.
for each item in Request.Cookies
...
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.
for each item in Request.Cookies
Response.Write "" + item + ":" + Request.Cookies(item) + "
"
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:
for each item in Request.Cookies
if Request.Cookies(item).HasKeys then
'La cookie es una colección
Response.Write("La cookie " + item
+ " tiene un conjuno de parejas clave/atributo.")
for each subitem in Request.Cookies(item)
Response.Write "
" + subitem + ":"
+ Request.Cookies(item)(subitem)
next
Response.Write("
")
end if
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:
<%
'Mandamos una serie de cookies para probar el ejemplo
Response.Cookies("musicaPreferida") = "pop"
Response.Cookies("peliculaPreferida") = "Espartaco"
Response.Cookies("musicaPreferida").expires = "12/12/2009"
Response.Cookies("enlace")("normal") = "blue"
Response.Cookies("enlace")("visitado") = "red"
Response.Cookies("enlace")("activo") = "red"
%>