巧用ASP.NET Cookie

一、Cookie是什么

Cookie是一小段文本信息,存在客户端硬盘上的长度不超过4KB的文本文件。
伴随着用户请求和页面在Web服务器和浏览器之间传递
用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。

二、工作原理

由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

三、Cookie对象的属性和方法
属性:
(1).Name:获取或设置Cookie的名称
(2).Value:获取或设置Cookie的值
(3).Expires:获取或设置Cookie的过期时间
(4).Version:获取或设置Cookie的符合HTTP维护状态的版本

方法:
(1).Add:增加Cookie变量,将指定的cookie保存到Cookies集合中
(2).Clear:清除Cookie集合中变量
(3).Get:通过变量名或索引得到Cookie变量的值
(4).Remove:通过Cookie变量名或索引删除Cookie对象

四、优缺点

优点:
相比Session和Application对象,使用Cookie能持久化保存用户信息。Cookie保存在客户端,而Session和Application保存在服务器端,故Cookie能长久保存。web应用程序可以通过获取客户端的Cookie来进行用户身份认证。
Asp.net包含两个Cookie集合,通过HttpRequest的Cookie集合进行访问,Cookie不是Page类的子类,所以使用方法与Session和Application不同,相比于他们Cookie的优点如下:
1.可以配置过期时间
2.简单:Cookie是一种基于文本的轻量级结构,包括简单的键值对
3.数据持久:因为保存到客户端
4.无任何服务器资源:因为存储在本地客户端

缺点如下:
1.大小限制:
2.不确定性:可能用户删除Cookie或者禁用
3.安全风险:可伪造修改

五、注意什么?
[1].使用Cookie保存客户端浏览器请求服务器页面的请求信息时,保存时间的长短取决于Cookie对象的Expires属性,可以根据需要来设置。若未设置Cookie的失效日期,则它们仅保存到关闭浏览器为止。若将Cookie对象的Expires属性设置为DateTime.MaxValue,则表示Cookie永远不会过期。

[2].Cookie存储的数据量有所限制,大多数浏览器支持的最大容量为4096字节,因此不要用Cookie来保存大量数据。

[3].  并非所有浏览器都支持Cookie,并且数据是以明文形式保存在客户端计算机中,因此最好不要用Cookie来保存敏感的未加密数据。

[4].在ASP.NET中有两个Cookies集合,即:Response对象的Cookies集合和Request对象的Cookies集合,但两者的作用有所不同,通过前者可以将Cookie写入客户端,通过后者可以读取存储在客户端的Cookie。
接下来讲到Cookie的实际应用。

  • 在首次登录后,将登录信息写入到用户计算机的Cookie中;
  • 当再次登录时,将用户计算机中的Cookie信息读出并显示,以备用户选择使用;
  • 可以利用读出Cookie中的信息来直接登录网站。
  • 操作步骤

    1、在VS新建一个的空白的asp.net应用程序,在项目管理器中,添加一个Web窗体;使用一个2行3列的表格进行布局;布局结束后,将2个Label控件分别置于布局表格的左侧,分别将其Text属性设置为用户名和密码,在布局表格中添加两个TextBox控件、一个Button控件和一个CheckBox控件,将Button控件的Text属性设置为“登录”,将CheckBox控件的Text属性设置为“记住用户名和密码”。

    2、添加一个HTML页面

    将默认将名称改为login.html

    3、编写事件处理代码

    <span style="font-family:KaiTi_GB2312;font-size:18px;">protected void Button1_Click(object sender, EventArgs e)
        { 
    
          if (CheckBox1.Checked)
          {
            Response.Cookies["ID"].Expires = new DateTime(2016, 2, 24); //用键名为ID的Cookie设置生存时间
            Response.Cookies["PW"].Expires = new DateTime(2016, 2, 24);
            Response.Cookies["ID"].Value = TextBox1.Text; //将键名为ID的Cookie的值设置为文本框内容
            Response.Cookies["PW"].Value = TextBox2.Text;
          }
          Response.Redirect("Login.html");  
    
        }</span>
    

      

  • 首先判断该页面定义的Cookie是否为空,若不为空则将Cookie中的内容读出并置于TextBox1和TextBox2两个文本框中,这样用户在自己机器上第二次登录同一个页面时,直接单击【登录】按钮即可,省掉了再次输入用户ID和密码的过程

    <span style="font-family:KaiTi_GB2312;font-size:18px;"> protected void Page_Load(object sender, EventArgs e)
        {
          if (Request.Cookies["ID"] != null && Request.Cookies["PW"] != null)
          {
            TextBox1.Text = Request.Cookies["ID"].Value.ToString();
            TextBox2.Text = Request.Cookies["PW"].Value.ToString();//将键名为ID的Cookie的值读出,并在文本框TextBox2中显示出来
          } 
    
        }</span>
    

      

    • 保存用户的个人爱好,设计者可根据Cookie中记录的用户爱好来设置网站的风格;
    • 进行在线购物时,记录用户购买的商品信息;
    • 记录弹出窗口被弹出的状况,一些页面被打开时会弹出通知或广告窗口,可以使用Cookie记录窗口被弹出的情况,了解弹出窗口是否被弹出过,若被弹出过,再次打开页面时就不再弹出该弹出窗口。
时间: 2024-11-03 21:00:08

巧用ASP.NET Cookie的相关文章

ASP.NET Cookie 概述【转】

来源:http://msdn.microsoft.com/zh-cn/library/ms178194(VS.80).aspx ASP.NET Cookie 概述 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息. 什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递.Cooki

【转】asp.net Cookie值中文乱码问题解决方法

来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqiang.blog.163.com/blog/#m=0 ============================================================================== cookie中怎么保存中文 在用cookie保存用户名的时候,发现cookie值不能存中文

ASP.NET Cookie对象到底是毛啊?(简单小例子)

记得刚接触asp.net的时候,就被几个概念搞的头痛不已,比如Request,Response,Session和Cookie.然后还各种在搜索引擎搜,各种问同事的,但是结果就是自己还是很懵的节奏. 那cookie到底是毛啊?下面是我最不喜欢的一种解释方式(官方定义吧应该叫,我这种智商根本读不懂嘛~) Cookie对象也称缓存对象,该对象用于保存客户端浏览器请求的服务器页面,也可用它存放非敏感性的用户信息. 以前根本读不懂啊,现在其实也懵懵的. 还是用例子能把这个概念搞明白 1.做一个用户登录的界

Asp.Net Cookie用法

比如建立一个名为cookiePhone,值为2598998的cookie HttpCookie cookie = new HttpCookie["cookiePhone"];cookie.Value = "2598998;Response.AppendCookie(cookie); 取出Cookie值也很简单 HttpCookie cookie = Request.Cookies["cookiePhone"];cookieValue = cookie.Va

ASP.NET Cookie是怎么生成的

原文:ASP.NET Cookie是怎么生成的 ASP.NET Cookie是怎么生成的 可能有人知道Cookie的生成由machineKey有关,machineKey用于决定Cookie生成的算法和密钥,并如果使用多台服务器做负载均衡时,必须指定一致的machineKey用于解密,那么这个过程到底是怎样的呢? 如果需要在.NET Core中使用ASP.NET Cookie,本文将提到的内容也将是一些必经之路. 抽丝剥茧,一步一步分析 首先用户通过AccountController->Login

数往知来 ASP.NET Cookie Session Url &lt;二十九&gt;

ViewState_Cookie 一.Request的几个成员 -->Request.UrlReferrer():请求的来源,就是客户端上一次请求的url地址,防止盗链 -->Request.UrlHostAddress;获取浏览器端的IP地址,通过Socket.RemoveEndPoint  获得的客户端IP地址 -->Request.MapPath();   跟context.ServerMapPath()一样 二.Response的成员 -->Respose.Buffer 缓

ASP.NET Cookie概念、CURD操作、原理、实际运用

会话就WEB开发来说,一个会话就是你通过浏览器与服务器之间的一次通话,只不过这种通话是以用浏览器浏览的方式来实现的. 就会话的应用来说,一般会话是用来识别用户的,比如你可以使用会话级变量记录当前用户已经输入的用户名密码,这样就不用他每次输入了,还可以用来记录一些其他的与当前这一次通话有关的信息.一旦你关闭了浏览 器,虽然会话没有结束,但是你重新打开浏览器时,已经不能再次利用上一次的会话了,它会新建一个会话.而服务器会根据预先的设置在超时后自动关闭会话,你也可以手动结束会话. 一.Cookie的基

C#ASP.NET Cookie 概述

1 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息. 2 3 什么是 Cookie? 4 6 Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递.Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息. 7 8 例如,如果在用户请求站点中的页面时应用程序发送给该用户的不仅仅是一个页面

ASP.NET Cookie 概述

Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息. 什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递.Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息. 例如,如果在用户请求站点中的页面时应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的