Compartir a través de


Cómo: Escribir una cookie

Actualización: noviembre 2007

Las cookies proporcionan, en las aplicaciones Web, un medio para almacenar información específica del usuario, como el historial o las preferencias. Una cookie es un pequeño fragmento de texto que acompaña a las solicitudes y respuestas que tienen lugar entre el servidor Web y el cliente. La cookie contiene información que la aplicación Web puede leer cada vez que el usuario visita el sitio.

El explorador administra las cookies en los equipos de los clientes. Las cookies se envían al cliente utilizando el objeto HttpResponse, que expone una propiedad denominada Cookies. Debe agregar a esta colección cualquier cookie que desee que la aplicación Web envíe al explorador. Cuando escriba una nueva cookie, deberá especificar sus propiedades Name y Value. Cada cookie debe tener un nombre único para que la aplicación Web pueda identificarla cuando el explorador la envíe con solicitudes futuras.

Hay dos maneras de escribir una cookie en el equipo de un usuario. Puede establecer las propiedades de la cookie directamente en la colección Cookies o puede crear una instancia del objeto HttpCookie y agregarla a la colección Cookies. Las cookies deben crearse antes de que la página ASP.NET se presente al cliente. Por ejemplo, puede escribir una cookie en un controlador de eventos Page_Load, pero no en un controlador de eventos Page_Unload. Para obtener más información sobre el ciclo de vida de las páginas, vea Información general sobre el ciclo de vida de una página ASP.NET.

Para obtener más información, vea Información general sobre las cookies en ASP.NET.

  • En la página ASP.NET en la que desea escribir la cookie, asigne las propiedades a una cookie de la colección Cookies.

    En el ejemplo de código siguiente se muestra una cookie denominada UserSettings con los valores de las subclaves Font y Color establecidos. También se establece la hora de caducidad para que sea el día siguiente.

    Response.Cookies("UserSettings")("Font") = "Arial"
    Response.Cookies("UserSettings")("Color") = "Blue"
    Response.Cookies("UserSettings").Expires = DateTime.Now.AddDays(1)
    
    Response.Cookies["UserSettings"]["Font"] = "Arial";
    Response.Cookies["UserSettings"]["Color"] = "Blue";
    Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
    
  1. Cree un objeto del tipo HttpCookie y asígnele un nombre.

  2. Asigne los valores a las subclaves de la cookie y establezca las propiedades de ésta.

  3. Agregue la cookie a la colección Cookies.

    El ejemplo de código siguiente muestra una instancia del objeto HttpCookie denominada myCookie, que representa una cookie denominada UserSettings.

    Dim myCookie As HttpCookie = New HttpCookie("UserSettings")
    myCookie("Font") = "Arial"
    myCookie("Color") = "Blue"
    myCookie.Expires = Now.AddDays(1)
    Response.Cookies.Add(myCookie)
    
    HttpCookie myCookie = new HttpCookie("UserSettings");
    myCookie["Font"] = "Arial";
    myCookie["Color"] = "Blue";
    myCookie.Expires = DateTime.Now.AddDays(1d);
    Response.Cookies.Add(myCookie);
    

Programación eficaz

De forma predeterminada, las cookies son compartidas por todas las páginas pertenecientes al mismo dominio, pero puede restringirlas a subcarpetas específicas del sitio Web estableciendo su propiedad Path. Para permitir que todas las páginas de todas las carpetas de la aplicación recuperen una cookie, establézcala en una página de la carpeta raíz de la aplicación y no establezca la propiedad Path.

Si no especifica un límite de caducidad para la cookie, ésta no se conservará en el equipo del cliente y caducará cuando caduque la sesión del usuario.

Las cookies sólo pueden almacenar valores de tipo String. Para poder almacenar en una cookie valores que no son cadenas antes debe convertirlos en cadenas. En muchos tipos de datos, basta con llamar al método ToString. Para obtener más información, vea el método ToString correspondiente al tipo de datos que desea conservar.

Seguridad

No almacene información confidencial, como un nombre de usuario o una contraseña, en una cookie. Para obtener más información sobre la seguridad en las cookies, vea Información general sobre las cookies en ASP.NET.

Vea también

Tareas

Cómo: Leer una cookie

Cómo: Eliminar una cookie

Conceptos

Información general sobre las cookies en ASP.NET

Procedimientos de seguridad básicos para aplicaciones Web

Información general sobre la administración de estados de ASP.NET