当前位置: 首页 > news >正文

ASP.NET 操作Cookie详解 增加,修改,删除

Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。定义于RFC2109。它是网景公司的前雇员Lou Montulli在1993年3月的发明。

  服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。

  Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。

程序代码

//写入
  protected void Button1_Click(object sender, EventArgs e)
  {
    HttpCookie cookie=new HttpCookie("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 Button2_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)
  {

    HttpCookie cok = 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);
    }
  }

 

 

 

 

 

相关文章:

  • ‍w3wp.exe占用内存过高的问题
  • w3wp.exe 频繁重启 Faulting application w3wp.exe
  • UTF-8编码下的Cookies出错 类型不匹配: ‘[object]‘
  • gzip 和 gunzip 的使用
  • linux下vi命令大全
  • extjs 同步和异步请求
  • Extjs combo数据绑定与获取
  • 上传图片Microsoft VBScript 运行时错误 错误 '800a01a8' extension=upfile.file(inputname).FileExt
  • RPM包管理
  • Linux Crontab 定时任务 命令详解
  • IIS 子验证程序的注册表键没有在本地计算机上正确配置,匿名密码同步功能被禁用
  • linux之dd命令
  • 將數字前面補0,補足設定的長度
  • C# .NET FTP上传文件夹操作
  • C# 实现Window服务实现定时发送邮件
  • 时间复杂度分析经典问题——最大子序列和
  • django开发-定时任务的使用
  • download使用浅析
  • emacs初体验
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • input的行数自动增减
  • Invalidate和postInvalidate的区别
  • Javascript 原型链
  • JavaScript设计模式系列一:工厂模式
  • Redux系列x:源码分析
  • SpriteKit 技巧之添加背景图片
  • 阿里云购买磁盘后挂载
  • 说说动画卡顿的解决方案
  • 我看到的前端
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 组复制官方翻译九、Group Replication Technical Details
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #微信小程序:微信小程序常见的配置传值
  • (Python第六天)文件处理
  • (二)斐波那契Fabonacci函数
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十一)手动添加用户和文件的特殊权限
  • (学习日记)2024.01.19
  • (一)UDP基本编程步骤
  • (转)C#调用WebService 基础
  • .Net 4.0并行库实用性演练
  • .NET BackgroundWorker
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .netcore如何运行环境安装到Linux服务器
  • .NET企业级应用架构设计系列之应用服务器
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @EventListener注解使用说明
  • [ IO.File ] FileSystemWatcher
  • [20190113]四校联考
  • [Angular 基础] - 表单:响应式表单
  • [bzoj4240] 有趣的家庭菜园