1 C#中Cookies的存取 c#中cookies的存取操作
2 c#中cookies的存取
3 cookies的创建:
4 在客户端创建一个username的cookies,其值为oneday,有效期为1天.
5
6 方法1:
7
8
9 Response.Cookies["username"].Value="admin";
10 Response.Cookies["username"].Expires=DateTime.Now.AddDays(1);
11
12
13
14 方法2:
15
16
17 System.Web.HttpCookie newcookie=new HttpCookie("username");
18 newcookie.Value="oneday";
19 newcookie.Expires=DateTime.Now.AddDays(1);
20 Response.AppendCookie(newcookie);
21
22
23
24 创建带有子键的cookies:
25
26
27 System.Web.HttpCookie newcookie=new HttpCookie("user");
28 newcookie.Values["username"]="admin";
29 newcookie.Values["password"]="admin";
30 newcookie.Expires=DateTime.Now.AddDays(1);
31 Response.AppendCookie(newcookie);
32
33
34 cookies的读取:
35 无子键读取:
36
37
38 if(Request.Cookies["username"]!=null)
39 {
40 Response.Write(Server.HtmlEncode(Request.Cookies["username"].Value));
41 }
42
43
44 有子键读取:
45
46
47 if(Request.Cookies["user"]!=null)
48 {
49 Response.Write(Server.HtmlEncode(Request.Cookies["user"]["username"].Value));
50 Response.Write(Server.HtmlEncode(Request.Cookies["user"]["password"].Value));
51
52 using System;
53 using System.Data;
54 using System.Configuration;
55 using System.Web;
56 using System.Web.Security;
57 using System.Web.UI;
58 using System.Web.UI.WebControls;
59 using System.Web.UI.WebControls.WebParts;
60 using System.Web.UI.HtmlControls;
61
62
63 public class Cookie
64 {
65 /// <summary>
66 /// Cookies赋值
67 /// </summary>
68 /// <param name="strName">主键</param>
69 /// <param name="strValue">键值</param>
70 /// <param name="strDay">有效天数</param>
71 /// <returns></returns>
72 public bool setCookie(string strName, string strValue, int strDay)
73 {
74 try
75 {
76 HttpCookie Cookie = new HttpCookie(strName);
77 //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
78 Cookie.Expires = DateTime.Now.AddDays(strDay);
79 Cookie.Value = strValue;
80 System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
81 return true;
82 }
83 catch
84 {
85 return false;
86 }
87 }
88
89 /// <summary>
90 /// 读取Cookies
91 /// </summary>
92 /// <param name="strName">主键</param>
93 /// <returns></returns>
94 public string getCookie(string strName)
95 {
96 HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
97 if (Cookie != null)
98 {
99 return Cookie.Value.ToString();
100 }
101 else
102 {
103 return null;
104 }
105 }
106
107 /// <summary>
108 /// 删除Cookies
109 /// </summary>
110 /// <param name="strName">主键</param>
111 /// <returns></returns>
112 public bool delCookie(string strName)
113 {
114 try
115 {
116 HttpCookie Cookie = new HttpCookie(strName);
117 //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
118 Cookie.Expires = DateTime.Now.AddDays(-1);
119 System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
120 return true;
121 }
122 catch
123 {
124 return false;
125 }
126 }
127 }
128
129
130
131 示例:
132
133
134 Cookie Cookie = new Cookie();
135 Cookie.setCookie("name", "aaa",1);//赋值
136 Cookie.getCookie("name");//取值
137 Cookie.delCookie("name");//删除
138
139
140 注意:当Cookie存中文出现乱码,则在存放时给中文编码,如Cookie.setCookie("name", Server.UrlEncode("aaa"),1),读取时解码即可
141
142 另外:只要不给cookie设置过期时间,cookie在浏览器关闭的时候自动失效
143
144
145
146 using System;
147 using System.Data;
148 using System.Configuration;
149 using System.Web;
150 using System.Web.Security;
151 using System.Web.UI;
152 using System.Web.UI.WebControls;
153 using System.Web.UI.WebControls.WebParts;
154 using System.Web.UI.HtmlControls;
155
156 public class Cookie
157 {
158 /// <summary>
159 /// Cookies赋值
160 /// </summary>
161 /// <param name="strName">主键</param>
162 /// <param name="strValue">键值</param>
163 /// <param name="strDay">有效天数</param>
164 /// <returns></returns>
165 public bool setCookie(string strName, string strValue, int strDay)
166 {
167 try
168 {
169 HttpCookie Cookie = new HttpCookie(strName);
170 //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
171 Cookie.Expires = DateTime.Now.AddDays(strDay);
172 Cookie.Value = strValue;
173 System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
174 return true;
175 }
176 catch
177 {
178 return false;
179 }
180 }
181
182 /// <summary>
183 /// 读取Cookies
184 /// </summary>
185 /// <param name="strName">主键</param>
186 /// <returns></returns>
187 public string getCookie(string strName)
188 {
189 HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName];
190 if (Cookie != null)
191 {
192 return Cookie.Value.ToString();
193 }
194 else
195 {
196 return null;
197 }
198 }
199
200 /// <summary>
201 /// 删除Cookies
202 /// </summary>
203 /// <param name="strName">主键</param>
204 /// <returns></returns>
205 public bool delCookie(string strName)
206 {
207 try
208 {
209 HttpCookie Cookie = new HttpCookie(strName);
210 //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com
211 Cookie.Expires = DateTime.Now.AddDays(-1);
212 System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);
213 return true;
214 }
215 catch
216 {
217 return false;
218 }
219 }
220 }
221
222
223 示例:
224
225
226 Cookie Cookie = new Cookie();
227 Cookie.setCookie("name", "aaa",1);//赋值
228 Cookie.getCookie("name");//取值
229 Cookie.delCookie("name");//删除
230
231
232 注意:当Cookie存中文出现乱码,则在存放时给中文编码,如Cookie.setCookie("name", Server.UrlEncode("aaa"),1),读取时解码即可
233
234 另外:只要不给cookie设置过期时间,cookie在浏览器关闭的时候自动失效