源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c# 对cookies(增、删、改、查)的操作方法

  • 时间:2020-05-29 20:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c# 对cookies(增、删、改、查)的操作方法
-----------------------------------------------------操作----------------------------------------------------------- 1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies)
[u]复制代码[/u] 代码如下:
  #region##添加cookeis     ///<summary>     /// 添加cookeis     ///</summary>     public void AddCookies()     {         HttpCookie cookies = new HttpCookie("Porschev");         cookies["name"] = "Zhong Wei";         cookies["sex"] = "1";         cookies.Expires = DateTime.Now.AddMinutes(20);         Response.Cookies.Add(cookies);     }     #endregion
添加cookies一般不会有人出错的。。。记得添加Expires就行 2.修改cookies( 在程序中难免会操作,对用户信息的修改,更新数据库后,也会修改cookies,为了修改后的显示) 方法一:
[u]复制代码[/u] 代码如下:
#region##修改cookies ///<summary> /// 修改cookies ///</summary> public void ModCookies() { HttpCookie cookies = Request.Cookies["Porschev"]; cookies["name"] = "wilson Z"; } #endregion
新建个测式页。。再取cookies中的name,结果:wilson Z; 这是这次项目中遇到的“杯具”事件之一,当这样修改cookies时,在更新方法中再取这个名为Porschev的cookies, name的值还为Zhong Wei而非wilson Z,页面显示也不对(己排除页面缓存原因,更新也确实没有成功) 修改方法一:
[u]复制代码[/u] 代码如下:
 #region##修改cookies     ///<summary>     /// 修改cookies     ///</summary>     public void ModCookies()     {         HttpCookie cookies = Request.Cookies["Porschev"];         cookies["name"] = "wilson Z";         //加上下面一句         Response.Cookies["Porschev"].Expires = DateTime.Now.AddMinutes(-1);      }     #endregion
再次测式,结果正确,取出name的值为:wilson Z,页面显示也正确 自己理解:得让以前存入过期时间为20min的cookies失效 3.得到cookies (这个最简单,为求方法完整,还是写上吧)
[u]复制代码[/u] 代码如下:
 #region##得到cookies     ///<summary>     /// 得到cookies     ///</summary>     public void GetCookies()     {         HttpCookie cookies = Request.Cookies["Porschev"];         string name = cookies["name"];   //通过key取出对应value,多key同理取     }     #endregion
4.删除cookies (删除cookies网上有很多方法,但是删除不是都能管用) 方法一:(最常用的一个删除cookies方法)
[u]复制代码[/u] 代码如下:
   #region##删除cookies     ///<summary>     /// 删除cookies     ///</summary>     public void DelCookeis()     {         if (Request.Cookies["Porschev"] != null)         {             HttpCookie cookies = new HttpCookie("Porschev");             cookies.Expires = DateTime.Now.AddDays(-1);             Response.Cookies.Add(cookies);         }             }     #endregion
在项目中测式,删除部分cookies失败,很无语,于是换一种方法
[u]复制代码[/u] 代码如下:
 #region##删除cookies     ///<summary>     /// 删除cookies     ///</summary>     public void DelCookeis()     {         foreach (string cookiename in  Request.Cookies.AllKeys)         {             HttpCookie cookies = Request.Cookies[cookiename];             if (cookies != null)             {                cookies.Expires = DateTime.Today.AddDays(-1);                Response.Cookies.Add(cookies);                Request.Cookies.Remove(cookiename);             }         }        }     #endregion
测式:删除成功 自己理解:方法一只能删除提当前Response中的cookies,不对完成删除掉客端的cookies,用遍历cookies的方式可以 方法一定对,己经过项目实际验证,观点不一定正确,如理解有误,请各位指正!!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部