ASP.NET cookie 操作详解cookie 写入、读取、修改、删除
来源:互联网 发布:北京银行安全控件mac 编辑:程序博客网 时间:2024/04/30 15:52
ASP.NET cookie 操作详解cookie 写入、读取、修改、删除
以前写程序都没去关注Cookie的应用,因为ASP.NET在客户端保存数据的方式比较多,且以前写的程序都没有用到Cookie,所以就没去了解,今天有个程序总是用Cookie出错。现在在网上查查Cookie的常用方法。
Cookie的用法也和ASP中差不多。比如我们建立一个名为user,值为111的cookie
注意:当Cookie存中文出现乱码,则在存放时给中文编码,如Cookie.setCookie("name",Server.UrlEncode("aaa"),1),读取时解码即可
一、操作详解:
//写入 protected void Button2_Click(object sender, EventArgs e) { HttpCookie cookie=newHttpCookie("MyCook");//初使化并设置Cookie的名称 DateTime dt=DateTime.Now; TimeSpan ts = new TimeSpan(0,0, 1,0,0);//过期时间为1分钟 cookie.Expires = dt.Add(ts);//设置过期时间 cookie.Values.Add("userid", "userid_value"); cookie.Values.Add("userid2","userid2_value2"); Response.AppendCookie(cookie); //输出该Cookie的所有内容 //Response.Write(cookie.Value); //输出为:userid=userid_value&userid2=userid2_value2 } //读取 protected void Button1_Click(object sender, EventArgs e) { // HttpCookie cokie =new HttpCookie("MyCook");//初使化 if(Request.Cookies["MyCook"]!=null) { //Response.Write("Cookie中键值为userid的值:" +Request.Cookies["MyCook"]["userid"]);//整行 //Response.Write("Cookie中键值为userid2的值" + Request.Cookies["MyCook"]["userid2"]); Response.Write(Request.Cookies["MyCook"].Value);//输出全部的值 } } //修改Cookie protected void Button3_Click(object sender, EventArgs e) { //获取客户端的Cookie对象 HttpCookie cok =Request.Cookies["MyCook"]; if (cok != null) { //修改Cookie的两种方法 cok.Values["userid"] = "alter-value"; cok.Values.Set("userid", "alter-value"); //往Cookie里加入新的内容 cok.Values.Set("newid", "newValue"); Response.AppendCookie(cok); } } //删除Cookie protected void Button4_Click(object sender, EventArgs e) { HttpCookiecok = Request.Cookies["MyCook"]; if (cok != null) { if(!CheckBox1.Checked) { cok.Values.Remove("userid");//移除键值为userid的值 } else { TimeSpan ts = new TimeSpan(-1, 0, 0, 0); cok.Expires = DateTime.Now.Add(ts);//删除整个Cookie,只要把过期时间设置为现在 } Response.AppendCookie(cok); } }二、分析:
以前写程序都没去关注Cookie的应用,因为ASP.NET在客户端保存数据的方式比较多,且以前写的程序都没有用到Cookie,所以就没去了解,今天有个程序总是用Cookie出错。现在在网上查查Cookie的常用方法。
Cookie的用法也和ASP中差不多。比如我们建立一个名为user,值为111的cookie
方法一、
// 写入:HttpCookie cookie = new HttpCookie("user");cookie.Value = "111";Response.AppendCookie(cookie);// 我们取出Cookie值也很简单HttpCookie cookie = Request.Cookies["user"];cookieValue = cookie.Value;// 有时候我们想在一个Cookie中储存多个信息,那也没有问题。比如我们在名为user的cookie下加多个信息HttpCookie cookie = new HttpCookie("user");cookie.Values.Add("name","222");cookie.Values.Add("pwd","333");cookie.Values.Add("member","admin");Response.AppendCookie(cookie);// 从客户端获取取信息也一样简单HttpCookie cookie = Request.Cookies["user"];value1 = cookies.Values["name"];value2 = cookies.Values["pwd"];
方法二、
写入:HttpCookie cookie = new HttpCookie("id_admin_");cookie.Value = model.id_admin_.ToString();//cookie.Domain = ".sosuo8.com";HttpContext.Current.Response.Cookies.Add(cookie);cookie = new HttpCookie("name_admin_");//可能是中文字符,必须经过编码cookie.Value = HttpUtility.UrlEncode(model.name_admin_);//cookie.Domain = ".sosuo8.com";HttpContext.Current.Response.Cookies.Add(cookie);cookie = new HttpCookie("guid");cookie.Value = Guid.NewGuid().ToString();//cookie.Domain = ".sosuo8.com";HttpContext.Current.Response.Cookies.Add(cookie);读取:HttpContext.Current.Request.Cookies["guid"].Valueasp.net清空cookie 清空单个Response.Cookies["admin"].Expires = DateTime.Now.AddDays(-1);asp.net清空cookie 清空所有Request.Cookies.Clear()这个方法并不是删除Cookie
删除 Cookie(即从用户的硬盘中物理移除 Cookie)是修改 Cookie 的一种形式。
由于 Cookie 在用户的计算机中,因此无法将其直接移除。
但是,可以让浏览器来为您删除 Cookie。
该技术是创建一个与要删除的 Cookie 同名的新Cookie,
并将该 Cookie 的到期日期设置为早于当前日期的某个日期。
当浏览器检查 Cookie 的到期日期时,浏览器便会丢弃这个现已过期的 Cookie。
下面的代码示例演示删除应用程序中所有可用 Cookie 的一种方法:
代码如下:
HttpCookie 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);}
Cookie封装类示例代码
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public class Cookie{ /// <summary> /// Cookies赋值 /// </summary> /// <param name="strName">主键</param> /// <param name="strValue">键值</param> /// <param name="strDay">有效天数</param> /// <returns></returns> public bool setCookie(string strName, string strValue, int strDay) { try { HttpCookie Cookie = new HttpCookie(strName); //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com Cookie.Expires = DateTime.Now.AddDays(strDay); Cookie.Value = strValue; System.Web.HttpContext.Current.Response.Cookies.Add(Cookie); return true; } catch { return false; } } /// <summary> /// 读取Cookies /// </summary> /// <param name="strName">主键</param> /// <returns></returns> public string getCookie(string strName) { HttpCookie Cookie = System.Web.HttpContext.Current.Request.Cookies[strName]; if (Cookie != null) { return Cookie.Value.ToString(); } else { return null; } } /// <summary> /// 删除Cookies /// </summary> /// <param name="strName">主键</param> /// <returns></returns> public bool delCookie(string strName) { try { HttpCookie Cookie = new HttpCookie(strName); //Cookie.Domain = ".xxx.com";//当要跨域名访问的时候,给cookie指定域名即可,格式为.xxx.com Cookie.Expires = DateTime.Now.AddDays(-1); System.Web.HttpContext.Current.Response.Cookies.Add(Cookie); return true; } catch { return false; } }}
示例:
Cookie Cookie = new Cookie();Cookie.setCookie("name", "aaa",1);//赋值Cookie.getCookie("name");//取值Cookie.delCookie("name");//删除
注意:当Cookie存中文出现乱码,则在存放时给中文编码,如Cookie.setCookie("name",Server.UrlEncode("aaa"),1),读取时解码即可
另外:只要不给cookie设置过期时间,cookie在浏览器关闭的时候自动失效
转自:http://hi.baidu.com/3k_xiong/item/de2d73d330203eecb3f777a1
- ASP.NET cookie 操作详解cookie 写入、读取、修改、删除
- ASP.NET cookie 操作详解cookie 写入、读取、修改、删除
- ASP.NET cookie 操作详解|cookie 写入、读取、修改、删除
- 转贴:ASP.NET- Cookie操作详解(写入、读取、修改)
- 读取/写入/修改/删除cookie
- ASP.NET 操作Cookie详解 增加,修改,删除
- ASP.NET 操作Cookie详解 增加,修改,删除 .
- ASP.NET 操作Cookie详解 增加,修改,删除
- ASP.NET 操作Cookie详解 增加,修改,删除
- ASP.NET 操作Cookie详解 增加,修改,删除
- ASP.NET 操作Cookie详解 增加,修改,删除
- ASP.NET 操作Cookie详解 增加,修改,删除
- Jquery cookie操作示例,写入cookie,读取cookie,删除cookie
- asp.net 写入cookie,js读取cookie
- asp.net cookie的操作,写入、读取与操作
- asp.net cookie的操作,写入、读取与操作
- ASP.NET写入 、读取 、 删除、追加cookie数组
- javascript读取cookie,javascrip写入cookie,asp.net读取cookie,asp.net写入cookie
- java中List对象转换为JSON对象
- SharePoint 2010 人物搜索的问题
- 2012年免费获取黑马程序员JavaEE+Android学习光盘
- 总结2004年至现在,我的程序员人生路
- 注意 ` ` 和 " " 的区别
- ASP.NET cookie 操作详解cookie 写入、读取、修改、删除
- 很多人看都哭了,不信你不哭
- cnblogs
- 好数据与抹墙皮
- java提高班 -- java多线程(3)线程池
- WWW or No WWW is Not the Same! Fix with Htaccess 301 Redirect
- RPM包rpmbuild SPEC文件深度说明
- precision and recall rate
- iPhone下对某些控件变化进行监听