网站链接: 我爱捣鼓
当前位置: 首页 > web开发  > Asp.net/C#

c#增删改查cookies的方法-附源码

2021/4/5 19:14:45

cookies对于大家来说并不陌生,我们今天就聊聊cookies在C#开发中如何正确的使用。 什么是cookies?Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息…

        cookies对于大家来说并不陌生,我们今天就聊聊cookies在C#开发中如何正确的使用。

        什么是cookies?

Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序 [2]  。

举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web, 会看到所有保存在硬盘上的 Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名, 就可以看到是哪个 Web 站点在机器上放置了Cookie(当然站点信息在文件里也有保存)

        cookies在C#的应用

        1.添加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

   

        2.修改cookies

        方法一:

            #region##修改cookies
            ///<summary>
            /// 修改cookies
            ///</summary>
            public void ModCookies()
            {
                HttpCookie cookies = Request.Cookies["Porschev"];
                cookies["name"] = "wilson Z";
            }
            #endregion

        

        修改方法一:

            #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

        

        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的方式可以方法一定对,己经过项目实际验证,观点不一定正确,如理解有误,请各位指正!!

        这就是c#增删改查cookies的具体实现方法,如果大家有什么更好的实现方法,也希望您与大家分享一下,谢谢!

相关资讯

  • C#怎么获取文件夹里所有的图片文件?

    在实际的程序开发中,我们经常需要获取某个文件夹下的所有图片,用到了C#的DirectoryInfo、GetFiles等文件操作方法,具体实现如下://自定义一个结构public struct sFileInfo{ public string FileName; public DateTime FileCreateTime;}protected void Page_Load(…

    2021/3/4 21:48:01
  • c#实现日期时间与unix时间戳互相转换

    为什么使用时间戳?关于Unix时间戳,大概是这个意思,从1970年0时0分0秒开始到现在的秒数.使用它来获得的是一个INT值,储存在数据库里只要使用INT格式就可以了,方便数据库进行排序,搜索,而且比datetime格式更节省数据库空间。 /// <summary> /// Uni…

    2021/3/4 21:40:22