ASP - Cookies
Семейство Cookies устанавливает значение модуля настройки. Если указанный модуль настройки не существует, то он создается. Если модуль настройки существует, он получает новое значение, а старое — стирается.
Синтаксис
Response.Cookies(модуль_настройки)[(ключ)|.атрибут] = значение
Параметры
модуль_настройки
Имя модуля настройки.
ключ
Необязательный параметр. Если ключ указан, модуль настройки является словарем и ключ становится равным значению.
атрибут
Задает сведения о самом модуле настройки. Значение параметра «атрибут» может иметь следующее значение.
Имя | Описание |
Domain | Только для записи. Если указан, модуль настройки отправляется только для запросов к этому домену. |
Expires | Только для записи. Дата истечения срока действия модуля настройки. Эта дата должна быть установлена, чтобы модуль настройки хранился на диске клиента после завершения сеанса. Если этот атрибут не установлен в более позднюю, чем текущая, дату, срок действия модуля настройки истечет при завершении сеанса. |
HasKeys | Только для чтения. Указывает наличие ключей в модуле настройки. |
Path | Только для записи. Если указан, модуль настройки отправляется только для запросов по этому пути. Если атрибут не установлен, используется путь приложения. |
Secure | Только для записи. Указывает, что модуль настройки является защищенным. |
Значение
Указывает значение, присваиваемое ключу или атрибуту.
Примечания
Если создан модуль настройки с ключами, как в приведенном ниже сценарии,
<%
Response.Cookies("mycookie")("type1") = "sugar"
Response.Cookies("mycookie")("type2") = "ginger snap"
%>
посылается такой заголовок:
Set-Cookie:MYCOOKIE=TYPE1=sugar&TYPE2=ginger+snap
Последующее присвоение myCookie
без указания ключа уничтожит type1
и type2
. Это показано в приведенном ниже примере.
<% Response.Cookies("myCookie") = "chocolate chip" %>
В приведенном выше примере ключи type1
и type2
уничтожаются и их значения теряются. Модуль настройки myCookie
теперь имеет значение chocolate chip
.
С другой стороны, если модуль настройки вызывается с ключом, уничтожаются все значения без ключей, содержащиеся в модуле настройки. Например, если после предыдущего вызова Response.Cookies вызывается следующим фрагментом сценария
<% Response.Cookies("myCookie")("newType") = "peanut butter" %>
Значение chocolate chip
теряется, а newType
будет установлен в peanut butter
.
Чтобы определить наличие ключей в модуле настройки, используйте следующую синтаксическую конструкцию.
<%= Response.Cookies("myCookie").HasKeys %>
Если myCookie
является словарем модуля настройки, значение приведенного выше выражения будет равно ИСТИНА. В противном случае значение равно ЛОЖЬ.
Можно использовать циклы для установки атрибутов модуля настройки. Например, чтобы установить срок действия всех модулей настройки в определенную дату, используйте следующую синтаксическую конструкцию.
<%
For Each cookie in Response.Cookies
Response.Cookie(cookie).ExpiresAbsolute = #July 4, 1997#
Next
%>
Можно перебирать значения всех модулей настройки в семействе или все ключи в модуле настройки. Однако если попытаться перебирать значения модуля настройки, не имеющего ключей, ничего не будет возвращено. Чтобы избежать этого, используйте .HasKeys для проверки наличия ключей в модуле настройки. Это показано в приведенном ниже примере.
<%
If Not cookie.HasKeys Then
'Set the value of the cookie.
Response.Cookies(cookie) = ""
Else
'Set the value for each key in the cookie collection.
For Each key in Response.Cookies(cookie)
Response.Cookies(cookie)(key) = ""
Next
%>
Пример
Приведенные ниже примеры показывают установку значения модуля настройки и присвоение значений атрибутам.
<%
Response.Cookies("Type") = "Chocolate Chip"
Response.Cookies("Type").ExpiresAbsolute = "July 31, 2001"
Response.Cookies("Type").Path = "/"
%>
Applies To
См. также
Оставить комментарий
Комментарии
Response.Cookies("cookiename").Domain = "otherdomain.com/", то кука не записывается вообще. Хотя если удалить только эту строку, а все остальное остается как было - все пишется.