Cookies コレクションで、HTTP 要求の中で送信された cookie の値を取得できます。
Request.Cookies(cookie)[(key)|.attribute]
Name | 説明 |
HasKeys | 読み取り専用です。cookie にキーが含まれているかどうかを指定します。 |
cookie 辞書のサブキーにアクセスするには、Key に対応する値を指定します。Key を指定せずに cookie 辞書にアクセスすると、すべてのキーが 1 つのクエリ文字列として返されます。たとえば、MyCookie に First と Second という 2 つのキーがあるとき、Request.Cookies の呼び出しの中でこれらのキーをどちらも指定していないと、次の文字列が返されます。
First=firstkeyvalue&Second=secondkeyvalue
同じ名前を持つ 2 つの cookie がクライアント ブラウザから送信された場合、Request.Cookies はより深いパス構造を持つ方の cookie を返します。たとえば、2 つの cookie が同じ名前で、一方のパス属性が /www/、もう一方のパス属性が /www/home/ であるとすると、クライアント ブラウザは両方の cookie を /www/home/ ディレクトリに送信しますが、Request.Cookies は後者の方の cookie だけを返します。
cookie が cookie 辞書であるかどうか (cookie がキーを持っているかどうか) を調べるには、次のスクリプトを使用します。
<%= Request.Cookies("myCookie").HasKeys %>
myCookie
が cookie 辞書であれば、上のスクリプトの値は TRUE に評価され、そうでなければ FALSE に評価されます。
ループを使用すると、Cookies コレクション内のすべての cookie や、cookie 内のすべてのキーを調べることができます。ただし、キーを持っていない cookie に対してループを使用した場合は何も出力されません。これを防ぐには、.HasKeys の構文を使用して cookie がキーを持っているかどうかを先にチェックしておきます。以上の操作の例を次に示します。
<%
For Each strKey In Request.Cookies
Response.Write strKey & " = " & Request.Cookies(strKey) & "<BR>"
If Request.Cookies(strKey).HasKeys Then
For Each strSubKey In Request.Cookies(strKey)
Response.Write "->" & strKey & "(" & strSubKey & ") = " & _
Request.Cookies(strKey)(strSubKey) & "<BR>"
Next
End If
Next
%>
次の例は、myCookie の値を Web ページに出力します。
Here is the value of the cookie named myCookie:
<%= Request.Cookies("myCookie") %>
注 Cookies コレクションの詳細については、World Wide Web Consortium Web サイト で入手可能な HTTP state management specification に記述されています。
Request オブジェクト
ClientCertificate、Form、QueryString、ServerVariables