Cookies コレクションは、HTTP 要求の中で送信された cookies の値を取得できるようにします。
Request.Cookies(cookie)[(key)|.attribute]
cookie
値を取得する cookie を指定します。
key
cookie 辞書からサブキーの値を取得するために使用する省略可能なパラメータです。
attribute
cookie 自体に関する情報を指定します。次のいずれかを属性パラメータに指定できます。
名前 |
説明 |
HasKeys |
(読み取り専用) cookie にキーが含まれているかどうかを指定します。 |
cookie 辞書のサブキーにアクセスするには、key に対応する値を指定します。key を指定せずに cookie 辞書にアクセスすると、すべてのキーが 1 つのクエリー文字列として返されます。たとえば、MyCookie に First と Second という 2 つのキーがあり、Request.Cookies 呼び出しの中でこれらのキーのどちらかを指定しないと、次の文字列が返されます。
First=firstkeyvalue&Second=secondkeyvalue
同じ名前を持つ 2 つの cookies がクライアント ブラウザから送信された場合、Request.Cookies はより深いパス構造を持つ cookies を返します。たとえば、2 つの cookies が同じ名前で、一方のパス属性が /www/、もう一方のパス属性が /www/home/ であるとすると、クライアント ブラウザは両方の cookies を /www/home/ ディレクトリに送信しますが、Request.Cookies は後者のほうの cookie だけを返します。
cookie が cookie 辞書であるかどうか (cookie がキーを持っているかどうか) を調べるには、次のスクリプトを使います。
<%= Request.Cookies("myCookie").HasKeys %>
myCookie が cookie 辞書であれば、上のスクリプトの値は TRUE に評価され、そうでなければ FALSE に評価されます。
ループを使うと、Cookie コレクション内のすべての cookies や、cookie 内のすべてのキーを調べることができます。ただし、キーを持っていない cookie に対しては何も出力されません。これを防ぐには、.HasKeys の構文を使って cookie がキーを持っているかどうかを先にチェックしておきます。以上の例を次に示します。
<%
' cookie コレクション全体を出力する
For Each cookie in Request.Cookies
If Not cookie.HasKeys Then
' cookie 文字列を出力する %>
<%= cookie %> = <%= Request.Cookies(cookie)%>
<% Else
' cookie コレクションを出力する
For Each key in Request.Cookies(cookie) %> <%= cookie %> (<%= key %>) = <%= Request.Cookies(cookie)(key)%>
<% Next
End If
Next
%>
次の例は、MyCookie の値を Web ページに出力します。
ここに myCookie という名前の cookie の値を表示します:
<%= Request.Cookies("myCookie") %>
ClientCertificate、Form、 QueryString、 ServerVariables