Cookies コレクションは cookie の値を設定します。指定された cookie が存在しない場合は、新しい cookie が作成されます。cookie が存在する場合は、新しい値を受け取り、古い値を破棄します。
Response.Cookies( cookie )[( key )|.attribute] = value
名前 | 説明 |
Domain | 書き込み専用です。指定した場合、cookie はこのドメインへの要求のみに送られます。 |
Expires | 書き込み専用です。cookie の有効期限が切れる日付です。セッション終了後に cookie がクライアントのディスク上に格納されるようにするには、この日付を設定する必要があります。この属性が、現在の日付よりも後の日付に設定されていない場合は、セッションの終了時に cookie の有効期限が切れます。 |
HasKeys | 読み取り専用です。cookie にキーが含まれているかどうかを指定します。 |
Path | 書き込み専用です。指定した場合、cookie はこのパスへの要求だけに送られます。この属性が設定されていない場合は、アプリケーション パスが使われます。 |
Secure | 書き込み専用です。cookie が保護されているかどうかを指定します。 |
次のスクリプトのように、キーを付けて cookie を作成したとします。
<%
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
という cookie の値は chocolate chip
になります。
逆に、キーを付けて cookie を呼び出すと、cookie に含まれているキー以外の値が破棄されます。たとえば、上のコードの後で次のように Response.Cookies を呼び出します。
<% Response.Cookies("myCookie")("newType") = "peanut butter" %>
すると、値 chocolate chip
は破棄され、newType
に peanut butter
が設定されます。
cookie がキーを持っているかどうかを調べるには、次の構文を使います。
<%= Response.Cookies("myCookie").HasKeys %>
myCookie
が cookie 辞書であれば前の値は TRUE に評価され、そうでなければ FALSE に評価されます。
ループを使用すると cookie の属性を設定できます。たとえば、すべての cookie の有効期限が特定の日付に切れるように設定するには、次の構文を使います。
<%
For Each cookie in Response.Cookies
Response.Cookies(cookie).Expires = #July 4, 1997#
Next
%>
また、ループを使って、コレクション内のすべての cookie の値や、cookie 内のすべてのキーを設定することもできます。ただし、キーを持っていない cookie に対してはループが実行されません。これを防ぐには、.HasKeys の構文を使用して cookie がキーを持っているかどうかを先にチェックしておきます。この例を次に示します。
<%
If Not Response.Cookies(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
%>
次の例は、cookie への値の設定方法と、その属性への値の割り当て方法を示したものです。
<%
Response.Cookies("Type") = "Chocolate Chip"
Response.Cookies("Type").Expires = "July 31, 2001"
Response.Cookies("Type").Path = "/"
%>
Response オブジェクト