次の方法で共有


Cookies

Cookies コレクションで、HTTP 要求の中で送信された cookie の値を取得できます。

構文

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 つの 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 コレクションの詳細については、WWW.W3.ORG で入手可能な HTTP state management specification に記述されています。

対象

Request オブジェクト

関連項目

ClientCertificateFormQueryStringServerVariables