#### Cookies

The Cookies collection enables you to retrieve the values of the cookies sent in an HTTP request.

###### Syntax

Request.Cookies(cookie)[(key)|.attribute]

###### Parameters

cookie
  Specifies the cookie whose value should be retrieved.
key
  An optional parameter used to retrieve subkey values from cookie dictionaries.
attribute
  Specifies information about the cookie itself. The attribute parameter can be the following.

  Name | Description
  HasKeys | Read-only. Specifies whether the cookie contains keys.

###### Remarks

You can access the subkeys of a cookie dictionary by including a value for key. If a cookie dictionary is accessed without specifying key, all of the keys are returned as a single query string. For example, if MyCookie`` has two keys, First and Second, and you do not specify either of these keys in a call to Request.Cookies, the following string is returned.

    First=firstkeyvalue&Second=secondkeyvalue

If two cookies with the same name are sent by the client browser, Request.Cookies returns the one with the deeper path structure. For example, if two cookies had the same name but one had a path attribute of /www/ and the other of /www/home/, the client browser would send both cookies to the /www/home/ directory, but Request.Cookies would only return the second cookie.

To determine whether a cookie is a cookie dictionary (whether the cookie has keys), use the following script.

    <%= Request.Cookies("myCookie").HasKeys %>

If `myCookie` is a cookie dictionary, the preceding value evaluates to TRUE. Otherwise, it evaluates to FALSE.

You can iterate through all the cookies in the Cookie collection, or all the keys in a cookie. However, iterating through keys on a cookie that does not have keys will not produce any output. You can avoid this situation by first checking to see whether a cookie has keys by using the .HasKeys syntax. This is demonstrated in the following example:

    <%
        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
    %>

###### Example

The following example prints the value of myCookie in a Web page.

    Here is the value of the cookie named myCookie:
    <%= Request.Cookies("myCookie") %>

Note Cookies are described in detail in the HTTP state management specification, which is available at the World Wide Web Consortium Web site.

###### Applies To

Request Object

###### See Also

ClientCertificate, Form, QueryString, ServerVariables

© 1997-2001 Microsoft Corporation. All rights reserved.