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

时间:2023-08-10 06:24:48 

-----------------------------------------------------操作-----------------------------------------------------------

1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies)


  #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,为了修改后的显示)

方法一:


#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,页面显示也不对(己排除页面缓存原因,更新也确实没有成功)

修改方法一:


 #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 (这个最简单,为求方法完整,还是写上吧)


 #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方法)


   #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失败,很无语,于是换一种方法


 #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的方式可以

方法一定对,己经过项目实际验证,观点不一定正确,如理解有误,请各位指正!!

标签:cookies
0
投稿

猜你喜欢

  • Java @Async注解导致spring启动失败解决方案详解

    2022-03-06 00:15:17
  • c# 调用Surfer软件,添加引用的具体操作方法

    2023-12-06 17:05:37
  • C#属性(Attribute)用法实例解析

    2021-09-20 16:01:29
  • C#实现自定义双击事件

    2023-05-01 16:31:57
  • 一篇文章超详细的介绍Java继承

    2023-11-23 08:30:12
  • Scala小程序详解及实例代码

    2023-03-29 12:10:56
  • Java学习之线程同步与线程间通信详解

    2022-05-27 08:03:59
  • 使用maven自定义插件开发

    2022-10-07 02:21:37
  • Android中GridView插件的使用方法

    2021-07-26 16:46:28
  • Java应用服务器之tomcat会话复制集群配置的示例详解

    2022-08-24 07:28:27
  • Unity3D中脚本的执行顺序和编译顺序

    2023-11-07 01:50:31
  • SpringBoot+JSON+AJAX+ECharts+Fiddler实现前后端分离开发可视化

    2021-11-12 14:49:17
  • BufferedInputStream(缓冲输入流)详解_动力节点Java学院整理

    2022-01-08 07:02:41
  • java算法实现预测双色球中奖号码

    2022-06-19 17:01:22
  • SprinBoot如何集成参数校验Validator及参数校验的高阶技巧

    2023-10-23 16:24:31
  • Android编程中的5种数据存储方式

    2022-04-22 07:05:09
  • 如何基于LoadingCache实现Java本地缓存

    2023-04-02 00:14:55
  • unity通过Mesh网格绘制图形球体

    2023-12-12 08:08:21
  • android开发设计模式之——单例模式详解

    2023-08-31 18:36:42
  • java hasNextInt判断是否为数字的方法

    2023-05-17 01:51:12
  • asp之家 软件编程 m.aspxhome.com