斗鱼不雅视频

当前位置:美女AV > Web开发 > ASP.NET > 正文  |  快速导航:ASP PHP JSP ASP.NET JavaScript JQuery Extjs Ajax Silverlight Flex WebService WCF prototype mootools Dojo
  • ASP.NET中Cookie状态的说明与用法

  • 字号:[ ]2014-1-11 16:42:13  阅读:121次  来源:乐猪网  编辑:银河精灵  收藏
  • 摘要:和Session对象一样,Cookie对象也是保存下来作为单个用户共享的状态,但是这个对象保存的位置与Session不同。Session被保存在服务器端,而Cookie是保存在浏览器端的。在Cookie中只能含有较少量的信息,通常不超过4096个字节(有些较新浏览器可以达到8192个字节)。
  •     Cookie 最早出现是在 Netscape Navigator 2.0 中。后来 ASP 也引入了这个技术,它的作用是与 Session 对象相结合来识别用户。每当用户开始连接站点时,系统将自动在内存块中创建一个用户有关的会话状态,同时创建一个用户的 ID 存放在浏览器端,与当前的用户惟一地AV视频 起来。这样,服务器保存了 Session,浏览器保存了 Cookie(用户的 ID)。当下一次用户发出请求时,请求的用户将被要求提交用户的 ID,两者对照以正确地还原原来的会话状态。这就是在无状态协议的 HTTP 条件下保持用户标志的方法。
        可以通过 Response.Cookies.Add() 方法直接向浏览器写入 Cookie,通过 Request.Cookies 方法读取已经设置好的 Cookie。
        写入 Cookie 的方法是,先创建一个 HttpCookie 对象,通过这个对象来构造一个 Cookie。例如:

    //创建一个 HttpCookie 对象  
    HttpCookie cookie = new HttpCookie("乐猪网");  
    //设定此 Cookie 值  
    cookie.Value = "编程入门网站";  
    //加入此 Cookie  
    Response.Cookies.Add(cookie);

        Cookie 有临时的,也有永远的。永久的 Cookie 以文件形式存储在计算机上,关闭 Internet Explorer 时仍然保留在计算机上。再次访问该站点时,创建该 Cookie 的网站可以读取。在具体的编程时候,是在写入此 Cookie 的时候,设定 Cookie 的生命周期,其代码如下:

    DateTime dtNow = DateTime.Now;  
    TimeSpan tsMinute = new TimeSpan(0, 1, 0, 0);  
    cookie.Expires = dtNow + tsMinute;  
    Response.Cookies.Add(cookie);

        以上代码是设定新产生的 Cookie 的生命期为一个小时,可以通过修改 TimeSpan 的属性来设定 Cookie 具体的生命期。如果不设定时间,默认时间为 20 分钟。
    斗鱼不雅视频    读取指定的 Cookie 时的语句如下:

    HttpCookie cookie = Request.Cookies["Cookie 的名称"];

    斗鱼不雅视频    如果想将读出的 Cookie 显示出来时,可以使用以下语句:

    Response.Write(cookie.Value.ToString());

        Cookie 是保存在客户端的字符串,它会影响用户的行为,但又不受用户的直接管理,虽然它只是一种标志(字母数字字符串)而不是程序,不可能用它来收集用户的信息,破坏用户的隐私。但有的用户仍然不放心,也可能是不愿意别人占用自己的空间,相当一部分用户在浏览器中禁止使用 Cookie。这就给识别用户带来了困难。
        ASP.NET 2.0 现在已经完全解决了在不使用 Cookie 的情况下,识别用户的方法(ASP.NET 1.1 版本只部分地解决了这一问题)。解决的方法很简单,只需要在应用程序的根目录下的 Web.config 文件中,对 <sessionState> 节点进行配置,其他任何程序都不需要修改。为什么一定要在应用程序的根目录下配置?因为会话状态的设置是应用程序范围的设置。站点中的网页要么全都使用该配置,要么全都不使用。配置的语句是:

    <sessionState cookieless="useUri" />

    斗鱼不雅视频    或

    <sessionState cookieless="AutoDetect" />

        配置时,当编写到“cookieless=”语句时,将弹出 AutoDetect、useCookies、useDeviceProfile、useUri 四种选择。选择 AutoDetect 或 useUri 均可在无 Cookies 的条件下识别用户。
        虽然在 <sessionState> 节点中还可以配置会话状态管理的其他方面,包括存储介质和连接字符串等,但是,就 Cookie 而言,只需设置 Cookieless 属性即可。
        系统是如何在无 Cookie 的条件下识别用户的呢?原来当进行了前面的设置以后,系统将会要求用户自动将客户端的资源信息嵌入到用户设用的 URL 语句中。例如,在使用 Cookie 的情况下,某用户设用网页时的 URL 是:http://yourserver/folder/default.aspx,现在设置了不使用 Cookie 的配置,调用的语句的 URL 将变成:http://yourserver/folder/(session ID here)/default.aspx,其中“session ID here”代表用户的资源信息所处的位置。该信息已经被插入到 URL 的语句中。由于用户资源信息对于用户来说具有惟一性,因此可以利用它与 Session 对象结合,一起来识别用户。

        下面举一个完整的小例子吧,请看下面的源代码:

    HttpCookie ck = Request.Cookies["cktest"];  
    if (ck == null)  
    {  
        ck = new HttpCookie("cktest");  
        ck.Value = "123";  
        
        ck.Expires = DateTime.Now.AddSeconds(20);//20秒的有效期  
        Response.Cookies.Add(ck);  
        Response.Write("new ck");  
    }  
    else
    {  
        Response.Write(ck.Value.ToString());  
    }  
        
    //在一个Cookie中储存多个信息  
    HttpCookie cookie = new HttpCookie("cktest");  
    cookie.Values.Add("v1", "1");  
    cookie.Values.Add("v2", "2");  
    cookie.Values.Add("v3", "3");  
    Response.AppendCookie(cookie);  
    HttpCookie cookies = Request.Cookies["cktest"];  
    string value1 = cookies.Values["v1"];  
    string value2 = cookies.Values["v2"];  
    Response.Write(value1 + value2);

        有关 Cookie 使用的利与弊说法不一,总得来说,在 Web 程序中,Cookie 还是起到很大的帮助,我们要合理地应用 Cookie!

  • 顶一下
    (0)
    0%
    踩一下
    (0)
    0%
乐猪网 版权所有 Copyright © 2012-2015 msyh801.cn All rights reserved.
本站用于学习交流,部分文章来源于网络,如果不慎侵犯了您的权益,请AV视频 我们删除!
粤ICP备12000837号

斗鱼不雅视频