Cookie 类

定义

提供一组用于管理 Cookie 的属性和方法。Provides a set of properties and methods that are used to manage cookies. 无法继承此类。This class cannot be inherited.

public ref class Cookie sealed
[System.Serializable]
public sealed class Cookie
type Cookie = class
Public NotInheritable Class Cookie
继承
Cookie
属性

示例

下面的示例将请求发送到 URL,并显示在响应中返回的 cookie。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.
/*
Cookie:
CustomerID = 13xyz
Domain: .contoso.com
Path: /
Port:
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
Comment: 
Uri for comments:
Version: RFC 2965
String: CustomerID = 13xyz
*/
using System.Net;
using System;
namespace Examples.System.Net.Cookies
{
    // 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.
    
    public class CookieExample
    {   
        public static void Main(string[] args)
        {   
            if (args == null || args.Length != 1)
            {
                Console.WriteLine("Specify the URL to receive the request.");
                Environment.Exit(1);
            }
            var request = (HttpWebRequest)WebRequest.Create(args[0]);
            request.CookieContainer = new CookieContainer();
        
            using (var response = (HttpWebResponse) request.GetResponse())
            {
                // Print the properties of each cookie.
                foreach (Cookie cook in response.Cookies)
                {
                    Console.WriteLine("Cookie:");
                    Console.WriteLine($"{cook.Name} = {cook.Value}");
                    Console.WriteLine($"Domain: {cook.Domain}");
                    Console.WriteLine($"Path: {cook.Path}");
                    Console.WriteLine($"Port: {cook.Port}");
                    Console.WriteLine($"Secure: {cook.Secure}");
                 
                    Console.WriteLine($"When issued: {cook.TimeStamp}");
                    Console.WriteLine($"Expires: {cook.Expires} (expired? {cook.Expired})");
                    Console.WriteLine($"Don't save: {cook.Discard}");
                    Console.WriteLine($"Comment: {cook.Comment}");
                    Console.WriteLine($"Uri for comments: {cook.CommentUri}");
                    Console.WriteLine($"Version: RFC {(cook.Version == 1 ? 2109 : 2965)}");
    
                    // Show the string representation of the cookie.
                    Console.WriteLine($"String: {cook}");
                }
            }
        }
    }
}

// Output from this example will be vary depending on the host name specified,
// but will be similar to the following.
/*
Cookie:
CustomerID = 13xyz
Domain: .contoso.com
Path: /
Port:
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
Comment: 
Uri for comments:
Version: RFC 2965
String: CustomerID = 13xyz
*/

Imports System.Net

' This example is run at the command line.
' Specify one argument: the name of the host to 
' receive the request.
' If the request is sucessful, the example displays the contents of the cookies
' returned by the host.

Public Class CookieExample
    
    Public Shared Sub Main(args() As String)
        If args Is Nothing OrElse args.Length <> 1 Then
            Console.WriteLine("Specify the URL to receive the request.")
            Environment.Exit(1)
        End If
        Dim request As HttpWebRequest = WebRequest.Create(args(0))
        request.CookieContainer = New CookieContainer()
    
        Using response As HttpWebResponse = request.GetResponse()
            ' Print the properties of each cookie.
            For Each cook As Cookie In response.Cookies
                Console.WriteLine("Cookie:")
                Console.WriteLine($"{cook.Name} = {cook.Value}")
                Console.WriteLine($"Domain: {cook.Domain}")
                Console.WriteLine($"Path: {cook.Path}")
                Console.WriteLine($"Port: {cook.Port}")
                Console.WriteLine($"Secure: {cook.Secure}")
    
                Console.WriteLine($"When issued: {cook.TimeStamp}")
                Console.WriteLine($"Expires: {cook.Expires} (expired? {cook.Expired})")
                Console.WriteLine($"Don't save: {cook.Discard}")
                Console.WriteLine($"Comment: {cook.Comment}")
                Console.WriteLine($"Uri for comments: {cook.CommentUri}")
                Console.WriteLine($"Version: RFC {If(cook.Version = 1, 2109, 2965)}")
    
                ' Show the string representation of the cookie.
                Console.WriteLine($"String: {cook}")
            Next
        End Using
    End Sub
End Class



' Output from this example will be vary depending on the host name specified,
' but will be similar to the following.
'
'Cookie:
'CustomerID = 13xyz
'Domain: .contoso.com
'Path: /
'Port:
'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
'Comment: 
'Uri for comments:
'Version: RFC 2965
'String: CustomerID = 13xyz
'

注解

客户端应用程序使用 Cookie 类来检索有关使用 HTTP 响应接收的 cookie 的信息。The Cookie class is used by a client application to retrieve information about cookies that are received with HTTP responses. 分析 HTTP 响应标头时,支持以下 cookie 格式:原始 Netscape 规范、RFC 2109 和 RFC 2965。The following cookie formats are supported during parsing of the HTTP response headers: the original Netscape specification, RFC 2109, and RFC 2965.

有关 Cookie实例的初始属性值的列表,请参阅各种 Cookie 构造函数。For a list of initial property values for an instance of Cookie, see the various Cookie constructors.

构造函数

Cookie()

初始化 Cookie 类的新实例。Initializes a new instance of the Cookie class.

Cookie(String, String)

使用指定的 CookieNameValue{4}初始化 {5} 类的新实例。Initializes a new instance of the Cookie class with a specified Name and Value.

Cookie(String, String, String)

使用指定的 CookieNameValue 初始化 Path 类的新实例。Initializes a new instance of the Cookie class with a specified Name, Value, and Path.

Cookie(String, String, String, String)

使用指定的 CookieNameValuePath 初始化 Domain 类的新实例。Initializes a new instance of the Cookie class with a specified Name, Value, Path, and Domain.

属性

Comment

获取或设置服务器可添加到 Cookie 中的注释。Gets or sets a comment that the server can add to a Cookie.

CommentUri

获取或设置服务器可通过 Cookie 来提供的 URI 注释。Gets or sets a URI comment that the server can provide with a Cookie.

Discard

获取或设置由服务器设置的放弃标志。Gets or sets the discard flag set by the server.

Domain

获取或设置 Cookie 对其有效的 URI。Gets or sets the URI for which the Cookie is valid.

Expired

获取或设置 Cookie 的当前状态。Gets or sets the current state of the Cookie.

Expires

获取或设置作为 CookieDateTime 的过期日期和时间。Gets or sets the expiration date and time for the Cookie as a DateTime.

HttpOnly

确定页面脚本或其他活动内容是否可访问此 Cookie。Determines whether a page script or other active content can access this cookie.

Name

获取或设置 Cookie 的名称。Gets or sets the name for the Cookie.

Path

获取或设置此 Cookie 适用于的 URI。Gets or sets the URIs to which the Cookie applies.

Port

获取或设置此 Cookie 适用于的 TCP 端口的列表。Gets or sets a list of TCP ports that the Cookie applies to.

Secure

获取或设置 Cookie 的安全性级别。Gets or sets the security level of a Cookie.

TimeStamp

获取此 Cookie 作为 DateTime 发出的时间。Gets the time when the cookie was issued as a DateTime.

Value

获取或设置 ValueCookieGets or sets the Value for the Cookie.

Version

获取或设置此 Cookie 符合的 HTTP 状态维护版本。Gets or sets the version of HTTP state maintenance to which the cookie conforms.

方法

Equals(Object)

重写 Equals(Object) 方法。Overrides the Equals(Object) method.

GetHashCode()

重写 GetHashCode() 方法。Overrides the GetHashCode() method.

GetType()

获取当前实例的 TypeGets the Type of the current instance.

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(继承自 Object)
ToString()

重写 ToString() 方法。Overrides the ToString() method.

适用于

另请参阅