Практическое руководство. Запись файлов Cookie

Visual Studio 2010

Обновлен: Ноябрь 2007

Файлы Cookie предоставляют средства веб-приложений для хранения сведений пользователя, таких как журнал или параметры пользователя. Файл Cookie – это небольшой кусок текста, сопровождающий запросы и ответы при их переходе между веб-сервером и клиентом. Файл Cookie содержит данные, которые веб-приложение может читать всякий раз при посещении веб-узла пользователем.

Обозреватель управляет файлами Cookie на клиентских компьютерах. Файлы Cookie отправляются клиенту с помощью объекта HttpResponse, который предоставляет свойство с именем Cookies. Все файлы Cookie, которые должны быть отправлены веб-приложением в обозреватель, необходимо добавить в эту коллекцию. При создании нового файла Cookie необходимо указать Name и Value. Каждый файл Cookie должен иметь уникальное имя, чтобы веб-приложение могло его идентифицировать, когда обозреватель отправляет его с будущими запросами.

Существует два способа для записи файла Cookie в компьютер пользователя. Можно либо непосредственно задать свойства файла Cookie в коллекции Cookies, либо создать экземпляр объекта HttpCookie и добавить его в коллекцию Cookies. Необходимо создать файл Cookie перед отображением страницы ASP.NET для клиента. Например, можно задать файл Cookie в обработчике событий Page_Load, но не в обработчике Page_Unload. Дополнительные сведения о жизненном цикле страницы см. в разделе Общие сведения о жизненном цикле веб-страниц ASP.NET.

Дополнительные сведения см. в разделе Общие сведения о файлах Cookie ASP.NET.

Запись файла Cookie путем задания свойств объекта Cookie в коллекции Cookies

  • На странице ASP.NET, для которой требуется записать файл Cookie, назначьте свойства объекта Cookie в коллекции Cookies.

    В следующем примере показан объект Cookie с именем UserSettings, в котором установлены значения подразделов Font и Color. В этом объекте Cookie также установлено окончание срока действия на завтра.

    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);
    

Запись файла Cookie путем создания экземпляра объекта HttpCookie

  1. Создайте объект типа HttpCookie и назначьте ему имя.

  2. Присвойте значения для подразделов объекта Cookie и задайте его свойства.

  3. Добавьте этот объект Cookie в коллекцию Cookies.

    В следующем примере показан экземпляр объекта HttpCookie с именем myCookie, который представляет файл Cookie с именем 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);
    

По умолчанию файлы Cookie являются общими для всех страниц, находящихся в одном домене, но можно ограничить файлы Cookie определенными вложенными папками веб-узла, установив их свойство Path. Чтобы разрешить извлечение файла Cookie всеми страницами всех папок приложения, следует установить его со страницы, которая находится в корневой папке приложения, и не задавать свойство Path.

Если срок действия для файла Cookie не задан, то на клиентском компьютере он не сохраняется, а самоликвидируется по окончании сеанса пользователя.

Файлы Cookie могут хранить только значения типа String. Необходимо преобразовать все значения типов, отличных от string, прежде чем можно будет хранить их в файле Cookie. Для многих типов данных достаточно вызвать метод ToString. Дополнительные сведения см. в описании метода ToString для типа данных, который требуется сохранить.

Не следует хранить в файле Cookie конфиденциальные сведения (например имя пользователя или пароль). Дополнительные сведения о безопасности файлов Cookie см. в разделе Общие сведения о файлах Cookie ASP.NET.

Показ: