学习web开发,使用Cookie是不可避免的,在这就浅显的总结一下。仅供新手参阅,老鸟路过。个人感觉Cookie的使用和ASP.NET中的Session非常像,只不过Cookie是保存在客户端,而Session是在服务器端,两者都以记录信息为目的,作为访问网站的凭据。本文仅仅是实践操作,不涉及理论知识。

本来想画个思维导图,但是想想还是算了,我不太喜欢在博客中贴一个让人眼花缭乱的思维导图,而且思维导图以图片的形式存在也不利于知识的传播。实际操作之前简单的讲一下Cookie吧!

Cookie其实就是一些保存在客户端的小文件,为下次访问网站时保存一些信息,比如:是否登录。Cookie的最大优点就是使用简单,传递、管理、维护都由浏览器完成;缺点是不安全、大小有限制、受浏览器安全性设置限制。刚刚提到Cookie实际上是一些小文件,这些文件肯定是用来存储信息的,那么这些小文件在哪里呢?这要分情况而言,如果服务器建立的是非持久性Cookie,那么这些文件保存在浏览器的内存中,一旦完全关闭浏览器,Cookie便失效了;如果服务器建立的是持久性Cookie,那么这些文件就被存放在:C:\你的用户名\Default\AppData\Roaming\Microsoft\Windows\Cookies,直接把正确的路径复制到资源管理器地址栏回车访问即可,不要手动寻找,那样是找不到的(即使显示了隐藏文件,也找不到Cookies文件夹),这些Cookie文件以文本文档的形式存储在这里,所以安全性就可想而知了。在程序中,如果我们设置Cookie的有效时间,则此Cookie就是持久性Cookie,如果不设置,默认的就是非持久性Cookie。

需要注意的是:当我们访问一个页面时,如果有对应的Cookie,浏览器会自动传递给服务器端,服务器端返回到客户端的Cookie也由浏览器处理,完全不用我们操心;Cookie是可以覆盖的,如果重复写入同名的Cookie,那么将会覆盖之前的Cookie。

以下的代码展示了:“服务器端如何读取客户端的Cookie”、“服务器端向客户端写入非持久性Cookie”、“服务器端向客户端写入持久性Cookie”、“持久性Cookie和非持久性Cookie的区别”、“强制让有效的持久化Cookie失效”。有了上边的讲解,再加上代码中的详细注释,相信读者一看就会。直接复制以下代码到vs,可正常运行。

Web前台HTML代码:

<body><form id="frmUp" runat="server" method="post"> <div>存入\读取Cookies:<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox><asp:Button ID="btnSaveTemp" runat="server" Text="写入非持久化Cookies" οnclick="btnSaveTemp_Click" /><asp:Button ID="btnSaveKeep" runat="server" Text="写入持久化Cookies" οnclick="btnSaveKeep_Click" /><asp:Button ID="btnChangeCookie" runat="server" Text="强制持久化Cookies过期" οnclick="btnChangeCookie_Click" /><asp:Button ID="btnRead" runat="server" Text="读取" οnclick="btnRead_Click" /></div></form>
</body>


Web后台C#代码:

//页面加载处理protected void Page_Load(object sender, EventArgs e){//加载时判断是否存在Cookies,存在则读取HttpCookie login = Request.Cookies["Login"]; //获取客户端返回的Cookies中名称为Login的Cookie对象if(login != null){txtUserName.Text = login["userName"]; //读取Login中属性值}else{txtUserName.Text = "Cookies无效";}}//服务器端向客户端写入非持久化Cookieprotected void btnSaveTemp_Click(object sender, EventArgs e){HttpCookie tempCookie = new HttpCookie("Login"); //创建一个HttpCookie实例,Cookies名称为Login,实例只是一个容器,真正使用的是Cookie名称tempCookie["userName"] = "www.kpdown.com"; //向Login中添加一个userName属性,并赋值Response.Cookies.Add(tempCookie); //把Cookies对象返回给客户端}//服务器端向客户端写入持久化Cookieprotected void btnSaveKeep_Click(object sender, EventArgs e){HttpCookie keepCookie = new HttpCookie("Login"); //创建一个HttpCookie实例,Cookies名称为Login,实例只是一个容器,真正使用的是Cookie名称keepCookie["userName"] = "www.kpdown.com"; //向Login中添加一个userName属性,并赋值keepCookie.Expires = DateTime.Now.AddDays(2); //设定Cookies的有效期为两天Response.Cookies.Add(keepCookie); //把Cookies对象返回给客户端}//强制让有效的持久化Cookie失效protected void btnChangeCookie_Click(object sender, EventArgs e){HttpCookie changeCookie = new HttpCookie("Login"); //使名称为Login的Cookies失效,就把HttpCookie对象的Cookie名称写成Login,相当于用新Login覆盖了旧的Login,Cookie可以覆盖changeCookie["userName"] = "www.kpdown.com"; //依然设置属性值,无法读取,证明Cookie已经失效changeCookie.Expires = DateTime.Now.AddDays(-1); //设定Cookies的有效期为无效时间即可让该Cookie失效Response.Cookies.Add(changeCookie);}//服务器端读取客户端的Cookieprotected void btnRead_Click(object sender, EventArgs e){HttpCookie login = Request.Cookies["Login"]; //获取客户端返回的Cookies中名称为Login的Cookie对象if (login != null){txtUserName.Text = login["userName"]; //读取Login中属性值}else{txtUserName.Text = "Cookies无效";}}

效果图:

转载于:https://www.cnblogs.com/iyangyuan/archive/2012/01/27/2801847.html

ASP.NET中Cookie的使用(实战教程)相关推荐

  1. ASP.NET 中 Cookie 的基本知识(转贴)

    地址:http://article.itebook.net/article.php/216.html ASP.NET 中 Cookie 的基本知识 目录 简介 什么是 Cookie? Cookie 的 ...

  2. ASP.NET 中 Cookie 的基本知识

    简介 Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法.例如,当用户访问您的站点时,您可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问您的站点时,应用程序 ...

  3. ASP.NET中Cookie编程的基础知识

    一.简介 Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法.例如,当用户访问您的站点时,您可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问您的站点时,应用 ...

  4. C# httpcookie asp.net中cookie的使用

    另见文章:http://blog.csdn.net/goodshot/article/details/8765153 protected void Page_Load(object sender, E ...

  5. 数据分析中的常用数学模型实战教程笔记(下)

    文章目录 SVM模型 代码操作 手写体字母识别 用最佳参数做预测 使用默认参数做预测 森林火灾可能性预测 Kmeans-K均值聚类模型 随机一个三组二元正态分布随机数 拐点法 轮廓系数法 函数代码 花 ...

  6. 第6章第21节:图文相搭技巧:将文字嵌入到图像中 [PowerPoint精美幻灯片实战教程]

    本节讲解图文混排时的常用技巧,对于文字较少的图文混排,可以将文字嵌入到图像中.首先对图片进行一些处理. 使用键盘上的快捷键,拷贝所选的内容. 然后降低这张图片的亮度. 点击插入选项卡,显示插入功能面板 ...

  7. ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

    2019独角兽企业重金招聘Python工程师标准>>> 在上讲中<ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版&g ...

  8. html点击按钮删除session,Asp.net中安全退出时清空Session或Cookie的实例代码

    概览: 网站中点击退出,如果仅仅是重定向到登录/出页面,此时在浏览器地址栏中输入登录后的某个页面地址如主页,你会发现不用登录就能访问.这种所谓的退出并不是安全的. 那么怎样做到安全退出呢? 那就是点击 ...

  9. 比较.ASP.NET中Application,Session,Cookie,ViewState和Cache

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

最新文章

  1. c语言如何不产生僵尸进程,第三章 九析带你处理 zombie(defunct) 进程
  2. git 查看某个文件的历史记录
  3. 招聘行业颠覆者【伯小乐】| 手摸手产品研究院
  4. python学习之列表的定义以及增删改查
  5. MySQL is running but PID file is not found
  6. oppo r11 android版本,OPPO R11手机一共有几个版本?各版本都有哪些区别?
  7. 如何删除Mac系统里面的所有 DS_Store 文件呢?
  8. esp8266 rtos 开发环境 ubuntu_esp8266/32~资源帖[持续更新]
  9. Onvif之wsdl地址
  10. 国务院:推进电子印章、签名应用,君子签助推高频事项“跨省通办”
  11. 程序与生活:你是软件程序员还是软件工程师?
  12. Mac电脑使用:删除保存在Mac电脑自带的Safari浏览器、谷歌浏览器、火狐浏览器中的账号和密码的方法
  13. 【spacedesk】屏幕扩展,将平板pad设置为pc的副屏
  14. 06_03_SpringMVC 任务一: SpringMVC基本应用(SpringMVC请求与响应,进行日期转换工具类DateConverter)
  15. 攻防世界 —— Crypto新手练习区7题(不仅仅是Morse)题解
  16. 德佑地产房产经纪人区域总监访谈:精耕,业精于勤
  17. Task Office for Mac(GTD办公软件)
  18. 设计模式01策略模式
  19. cad能整体比例缩小吗_cad比例缩放 cad如何整体缩小尺寸
  20. 前端面试题汇总CSS篇

热门文章

  1. 浅析网站建设基本流程
  2. mysql5.7.11无法启动_mysql 5.7.11 启动报错
  3. 档案盒正面标签制作_包材工艺丨浅述模内标签印刷及材料的选择
  4. ajax存到php变量,Ajax返回值作为PHP变量
  5. mysql 快照读 幻读,InnoDB的MVCC如何解决不可重复读和快照读的幻读,当前读用next-key解决幻读...
  6. 上标3下标6算法_图解堆排序算法
  7. cad图纸目录自动生成插件_如何自动生成论文目录?
  8. 测试的目的_为什么需要测试?(软件测试的目的)
  9. PC端创业真的已死?我不这么认为
  10. 【css】报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法