Cookie Class

Provides a set of properties and methods that are used to manage cookies. This class cannot be inherited.

Namespace: System.Net
Assembly: System (in system.dll)

public ref class Cookie sealed
/** @attribute SerializableAttribute() */ 
public final class Cookie
public final class Cookie
Not applicable.

The Cookie class is used by a client application to retrieve information about cookies that are received with HTTP responses. The following cookie formats are supported during parsing of the HTTP response headers: Netscape, RFC 2109, and RFC 2965.

For a list of initial property values for an instance of Cookie, see the various Cookie constructors.

The following example sends a request to a URL and displays the cookies returned in the response.

#using <System.dll>

using namespace System;
using namespace System::Net;

// This example is run at the command line.
// Specify one argument: the name of the host to 
// send the request to.
// If the request is sucessful, the example displays the contents of the cookies
// returned by the host.
int main()
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args == nullptr || args->Length != 2 )
      Console::WriteLine( "Specify the URL to receive the request." );
      Environment::Exit( 1 );

   HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create( args[ 1 ] ));
   request->CookieContainer = gcnew CookieContainer;
   HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
   response->Cookies = request->CookieContainer->GetCookies( request->RequestUri );
   // Print the properties of each cookie.
   System::Collections::IEnumerator^ myEnum = response->Cookies->GetEnumerator();
   while ( myEnum->MoveNext() )
      Cookie^ cook = safe_cast<Cookie^>(myEnum->Current);
      Console::WriteLine( "Cookie:" );
      Console::WriteLine( "{0} = {1}", cook->Name, cook->Value );
      Console::WriteLine( "Domain: {0}", cook->Domain );
      Console::WriteLine( "Path: {0}", cook->Path );
      Console::WriteLine( "Port: {0}", cook->Port );
      Console::WriteLine( "Secure: {0}", cook->Secure );
      Console::WriteLine( "When issued: {0}", cook->TimeStamp );
      Console::WriteLine( "Expires: {0} (expired? {1})", cook->Expires, cook->Expired );
      Console::WriteLine( "Don't save: {0}", cook->Discard );
      Console::WriteLine( "Comment: {0}", cook->Comment );
      Console::WriteLine( "Uri for comments: {0}", cook->CommentUri );
      Console::WriteLine( "Version: RFC {0}", cook->Version == 1 ? (String^)"2109" : "2965" );
      // Show the string representation of the cookie.
      Console::WriteLine( "String: {0}", cook );


// Output from this example will be vary depending on the host name specified,
// but will be similar to the following.
CustomerID = 13xyz
Path: /
Secure: False
When issued: 1/14/2003 3:20:57 PM
Expires: 1/17/2013 11:14:07 AM (expired? False)
Don't save: False
Uri for comments:
Version: RFC 2965
String: CustomerID = 13xyz


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0