2 // System.Web.HttpCookie
\r
5 // Patrik Torstensson (Patrik.Torstensson@labs2.com)
\r
10 using System.Collections.Specialized;
\r
12 namespace System.Web {
\r
13 public sealed class HttpCookie {
\r
14 private string _Name;
\r
15 private string _Value;
\r
16 private string _Domain;
\r
17 private DateTime _Expires;
\r
18 private bool _ExpiresSet;
\r
19 private string _Path;
\r
20 private bool _Secure = false;
\r
22 private HttpValueCollection _Values;
\r
24 internal HttpCookie() {
\r
28 public HttpCookie(string name) {
\r
33 public HttpCookie(string name, string value) {
\r
38 HttpResponseHeader GetCookieHeader() {
\r
39 StringBuilder oSetCookie = new StringBuilder();
\r
41 if (null != _Name && _Name.Length > 0) {
\r
42 oSetCookie.Append(_Name);
\r
43 oSetCookie.Append("=");
\r
46 if (null != _Values) {
\r
47 oSetCookie.Append(_Values.ToString(false));
\r
48 } else if (null != _Value) {
\r
49 oSetCookie.Append(_Value);
\r
52 if (null != _Domain && _Domain.Length > 0) {
\r
53 oSetCookie.Append("; domain=");
\r
54 oSetCookie.Append(_Domain);
\r
57 if (null != _Path && Path.Length > 0) {
\r
58 oSetCookie.Append("; path=");
\r
59 oSetCookie.Append(_Path);
\r
63 oSetCookie.Append("; secure");
\r
66 return new HttpResponseHeader(HttpWorkerRequest.HeaderSetCookie, oSetCookie.ToString());
\r
69 public string Domain {
\r
78 public DateTime Expires {
\r
81 return DateTime.MinValue;
\r
93 public bool HasKeys {
\r
95 return Values.HasKeys();
\r
99 public string this[string key] {
\r
101 return Values[key];
\r
105 Values[key] = value;
\r
109 public string Name {
\r
119 public string Path {
\r
129 public bool Secure {
\r
138 public string Value {
\r
140 if (null != _Values) {
\r
141 return _Values.ToString(false);
\r
147 if (null != _Values) {
\r
149 _Values.Add(null, value);
\r
157 public NameValueCollection Values {
\r
159 if (null == _Values) {
\r
160 _Values = new HttpValueCollection();
\r
161 if (null != _Value) {
\r
162 // Do we have multiple keys
\r
163 if (_Value.IndexOf("&") >= 0 || _Value.IndexOf("=") >= 0) {
\r
164 _Values.FillFromCookieString(_Value);
\r
166 _Values.Add(null, _Value);
\r