Практическое руководство. Запись файлов Cookie
Обновлен: Ноябрь 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
Создайте объект типа HttpCookie и назначьте ему имя.
Присвойте значения для подразделов объекта Cookie и задайте его свойства.
Добавьте этот объект 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.
См. также
Задачи
Практическое руководство. Считывание файлов Cookie
Практическое руководство. Удаление файла Cookie
Основные понятия
Общие сведения о файлах Cookie ASP.NET