1,编写 Cookie的两种方式:
1)Response.Cookies["userName"].Value = "patrick"; Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1); 2)HttpCookie aCookie = new HttpCookie("lastVisit"); aCookie.Value = DateTime.Now.ToString(); aCookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(aCookie);
2,例子:
HttpCookie cookie = new HttpCookie("LoginUser");
cookie.Values.Add("UserId", Server.UrlEncode(dsLoginUser.Tables[0].Rows[0]["Id"].ToString()));
cookie.Values.Add("UserName", Server.UrlEncode(dsLoginUser.Tables[0].Rows[0]["UserName"].ToString()));
cookie.Values.Add("UserType", Server.UrlEncode(dsLoginUser.Tables[0].Rows[0]["UserType"].ToString()));
Response.AppendCookie(cookie);或 Response.Cookies.Add(cookie);
获取: UserId = Server.UrlDecode(Request.Cookies["LoginUser"].Values["UserId"]);
UserName = Server.UrlDecode(Request.Cookies["LoginUser"].Values["UserName"]);
UserType = Server.UrlDecode(Request.Cookies["LoginUser"].Values["UserType"]);
或
if(Request.Cookies["userInfo"] != null) { Label1.Text = Server.HtmlEncode(Request.Cookies["userInfo"]["userName"]); Label2.Text = Server.HtmlEncode(Request.Cookies["userInfo"]["lastVisit"]); }
3,将 Cookie 限制到某个文件夹或应用程序
HttpCookie appCookie = new HttpCookie("AppCookie"); appCookie.Value = "written " + DateTime.Now.ToString(); appCookie.Expires = DateTime.Now.AddDays(1); appCookie.Path = "/Application1"; Response.Cookies.Add(appCookie);4,限制 Cookie 的域范围Response.Cookies["domain"].Value = DateTime.Now.ToString(); Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1); Response.Cookies["domain"].Domain = "support.contoso.com";5,读取 Cookieif(Request.Cookies["userName"] != null) Label1.Text = Server.HtmlEncode(Request.Cookies["userName"].Value); if(Request.Cookies["userName"] != null) { HttpCookie aCookie = Request.Cookies["userName"]; Label1.Text = Server.HtmlEncode(aCookie.Value); }或if(Request.Cookies["userInfo"] != null) { System.Collections.Specialized.NameValueCollection UserInfoCookieCollection; UserInfoCookieCollection = Request.Cookies["userInfo"].Values; Label1.Text = Server.HtmlEncode(UserInfoCookieCollection["userName"]); Label2.Text = Server.HtmlEncode(UserInfoCookieCollection["lastVisit"]); }6,有子键时读取for(int i=0; i<Request.Cookies.Count; i++) { aCookie = Request.Cookies[i]; output.Append("Name = " + aCookie.Name + "<br />"); if(aCookie.HasKeys) { for(int j=0; j<aCookie.Values.Count; j++) { subkeyName = Server.HtmlEncode(aCookie.Values.AllKeys[j]); subkeyValue = Server.HtmlEncode(aCookie.Values[j]); output.Append("Subkey name = " + subkeyName + "<br />"); output.Append("Subkey value = " + subkeyValue + "<br /><br />"); } } else { output.Append("Value = " + Server.HtmlEncode(aCookie.Value) + "<br /><br />"); } } Label1.Text = output.ToString();或者System.Text.StringBuilder output = new System.Text.StringBuilder(); HttpCookie aCookie; string subkeyName; string subkeyValue; for (int i = 0; i < Request.Cookies.Count; i++) { aCookie = Request.Cookies[i]; output.Append("Name = " + aCookie.Name + "<br />"); if (aCookie.HasKeys) { System.Collections.Specialized.NameValueCollection CookieValues = aCookie.Values; string[] CookieValueNames = CookieValues.AllKeys; for (int j = 0; j < CookieValues.Count; j++) { subkeyName = Server.HtmlEncode(CookieValueNames[j]); subkeyValue = Server.HtmlEncode(CookieValues[j]); output.Append("Subkey name = " + subkeyName + "<br />"); output.Append("Subkey value = " + subkeyValue + "<br /><br />"); } } else { output.Append("Value = " + Server.HtmlEncode(aCookie.Value) + "<br /><br />"); } } Label1.Text = output.ToString();7,修改和删除 Cookieint counter; if (Request.Cookies["counter"] == null) counter = 0; else { counter = int.Parse(Request.Cookies["counter"].Value); } counter++; Response.Cookies["counter"].Value = counter.ToString(); Response.Cookies["counter"].Expires = DateTime.Now.AddDays(1);删除CookieHttpCookie aCookie;
string cookieName;
int limit = Request.Cookies.Count;
for (int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
}8,确定浏览器是否接受 Cookiea页面if (!Page.IsPostBack)
{
if (Request.QueryString["AcceptsCookies"] == null)
{
Response.Cookies["TestCookie"].Value = "ok";
Response.Cookies["TestCookie"].Expires =
DateTime.Now.AddMinutes(1);
Response.Redirect("b.aspx?redirect=" +
Server.UrlEncode(Request.Url.ToString()));
}
else
{
Label1.Text = "Accept cookies = " +
Server.UrlEncode(
Request.QueryString["AcceptsCookies"]);
}
}B页面string redirect = Request.QueryString["redirect"];
string acceptsCookies;
if (Request.Cookies["TestCookie"] == null)
acceptsCookies = "no";
else
{
acceptsCookies = "yes";
// Delete test cookie.
Response.Cookies["TestCookie"].Expires =
DateTime.Now.AddDays(-1);
}
Response.Redirect(redirect + "?AcceptsCookies=" + acceptsCookies,
true);