Cookie.Version 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置此 Cookie 符合的 HTTP 状态维护版本。
public:
property int Version { int get(); void set(int value); };
public int Version { get; set; }
member this.Version : int with get, set
Public Property Version As Integer
属性值
此 Cookie 符合的 HTTP 状态维护版本。
例外
不允许使用为版本指定的值。
示例
以下示例显示响应中返回的 Cookie 的属性。 有关完整示例,请参阅 Cookie 类主题。
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 );
}
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}");
}
}
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
注解
属性的 Version 默认值为 0,符合原始 Netscape 规范。 如果该值显式设置为 1,则必须 Cookie 符合 RFC 2109。 请注意,如果 Cookie 是通过接收 HTTP 响应标头 Set-Cookie2 自动创建的,则符合性设置为 RFC 2965。
尝试将 Version 属性设置为小于零的值将引发异常。