Cookies 的读写

来源:互联网 发布:微店没有淘宝搬家 编辑:程序博客网 时间:2024/06/15 22:32
 大家都知道,网站一般都会用Session保存用户的ID,但是容易过期,经常丢失,然而用Cookies就比较好了,下面就是我的读写Cookies的代码。

/**//// <summary>
    /// 写Cookies
    /// </summary>
    /// <param name="response"></param>
    /// <param name="request"></param>
    /// <param name="server"></param>
    /// <param name="IndexValue"></param>
    /// <param name="TextValue"></param>
    /// <param name="ExpriesHour">设置的过期时间</param>
    public void WriteCookies(HttpResponse response,HttpRequest request,HttpServerUtility server,string IndexValue,string TextValue,int ExpriesHour)
    {
        response.Cookies[IndexValue].Value = TextValue;
        response.Cookies[IndexValue].Expires = System.DateTime.Now.AddHours(ExpriesHour);
    }
    /**//// <summary>
    /// 读Cookies
    /// </summary>
    /// <param name="response"></param>
    /// <param name="request"></param>
    /// <param name="server"></param>
    /// <param name="IndexValue"></param>
    /// <returns></returns>
    public string ReadCookies(HttpResponse response, HttpRequest request, HttpServerUtility server, string IndexValue)
    {
        if (request.Cookies[IndexValue] != null)
            return request.Cookies[IndexValue].Value.ToString();
        return "";
    }
    /**//// <summary>
    /// 删除Cookies,立即过期
    /// </summary>
    /// <param name="response"></param>
    /// <param name="request"></param>
    /// <param name="server"></param>
    /// <param name="IndexValue"></param>
    public void DeleteCookies(HttpResponse response, HttpRequest request, HttpServerUtility server, string IndexValue)
    {
        if (request.Cookies[IndexValue] != null)
        {           
            HttpCookie cookies=request .Cookies[IndexValue];
            cookies .Expires=System.DateTime.Now.AddHours(-1);
            response.Cookies.Add(cookies);
        }
    }

 


C# :

方法1:
Response.Cookies["username"].Value="gjy";
Response.Cookies["username"].Expires=DateTime.Now.AddDays(1);

方法2:
System.Web.HttpCookie newcookie=new HttpCookie("username");
newcookie.Value="gjy";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);


创建带有子键的cookies:
System.Web.HttpCookie newcookie=new HttpCookie("user");
newcookie.Values["username"]="gjy";
newcookie.Values["password"]="111";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);

 

cookies的读取:

无子键读取:
if(Request.Cookies["username"]!=null)
{
Response.Write(Server.HtmlEncode(Request.Cookies["username"].Value));
}

有子键读取:
if(Request.Cookies["user"]!=null)
{
Response.Write(Server.HtmlEncode(Request.Cookies["user"]["username"].Value));
}
回答者: skanso - 经理 五级 2-2 17:29
vb:
'COOKIE中设置
'帐号
Response.Cookies("userId") = userId
Response.Cookies("userId").Expires = 60 '保存时间,以天为单位
'密码
Response.Cookies("pw") = pw
Response.Cookies("pw").Expires = 60

'从COOKIE取得
Response.Cookies("userId")
Response.Cookies("pw")

如果Cookies中无值,取得为空字符串""

给我加分哦!~
回答者: huting974 - 见习魔法师 二级 2-2 17:53
Cookies现在经常被大家提到,那么到底什么是Cookies,它有什么作用呢?

Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。

从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读取。保存的信息片断以“名/值”对(name-value pairs)的形式储存,一个“名/值”对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。

Cookies中的内容大多数经过了加密处理,因此一般用户看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。

由于Cookies是我们浏览的网站传输到用户计算机硬盘中的文本文件或内存中的数据,因此它在硬盘中存放的位置与使用的操作系统和浏览器密切相关。在Windows 9X系统计算机中,Cookies文件的存放位置为C:WindowsCookies,在Windows NT/2000/XP的计算机中,Cookies文件的存放位置为C:Documents and Settings用户名Cookies。

硬盘中的Cookies文件可以被Web浏览器读取,它的命令格式为:用户名@网站地址[数字].txt。如笔者计算机中的一个Cookies文件名为:ch@163[1].txt。要注意的是:硬盘中的Cookies属于文本文件,不是程序。

Cookies的设置

你可以在IE的“工具/Internet选项”的“常规”选项卡中,选择“设置/查看文件”,查看所有保存到你电脑里的Cookies。这些文件通常是以user@domain格式命名的,user是你的本地用户名,domain是所访问的网站的域名。如果你使用NetsCape浏览器,则存放在“C:PROGRAMFILESNETS- CAPEUSERS”里面,与IE不同的是,NETSCAPE是使用一个Cookie文件记录所有网站的Cookies。

我们可对Cookie进行适当设置:打开“工具/Internet选项”中的“隐私”选项卡(注意该设置只在IE6.0中存在,其他版本IE可以单击“工具/Internet选项”“安全”标签中的“自定义级别”按钮,进行简单调整),调整Cookie的安全级别。通常情况,可以调整到“中高”或者“高”的位置。多数的论坛站点需要使用Cookie信息,如果你从来不去这些地方,可以将安全级调到“阻止所有Cookies”;如果只是为了禁止个别网站的Cookie,可以单击“编辑”按钮,将要屏蔽的网站添加到列表中。在“高级”按钮选项中,你可以对第一方Cookie和第三方的Cookie进行设置,第一方Cookie是你正在浏览的网站的Cookie,第三方Cookie是非正在浏览的网站发给你的Cookie,通常要对第三方Cookie选择“拒绝”。你如果需要保存Cookie,可以使用IE的“导入导出”功能,打开“文件/导入导出”,按提示操作即可。


Cookies的写入与读取

Cookies集合是附属于Response对象及Request对象的数据集合,使用时需要在前面加上Response或Request。

用于给客户机发送Cookies的语法通常为:

当给不存在的Cookies集合设置时,就会在客户机创建,如果该Cookies己存在,则会被代替。由于Cookies是作为HTTP传输的头信息的一部分发给客户机的,所以向客户机发送Cookies的代码一般放在发送给浏览器的HTML文件的标记之前。

如果用户要读取Cookies,则必须使用Request对象的Cookies集合,其使用方法是:

需要注意的是,只有在服务器未被下载任何数据给浏览器前,浏览器才能与Server进行Cookies集合的数据交换,一旦浏览器开始接收Server所下载的数据,Cookies的数据交换则停止,为了避免错误,要在程序和前面加上response.Buffer=True。

Cookies的应用

几乎所有的网站设计者在进行网站设计时都使用了Cookie,因为他们都想给浏览网站的用户提供一个更友好的、人文化的浏览环境,同时也能更加准确地收集访问者的信息。

网站浏览人数管理

由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。使用Cookie,网站可以完成以下工作:测定多少人访问过;测定访问者中有多少是新用户(即第一次来访),多少是老用户;测定一个用户多久访问一次网站。

通常情况下,网站设计者是借助后台数据库来实现以上目的的。当用户第一次访问该网站时,网站在数据库中建立一个新的ID,并把ID通过Cookie传送给用户。用户再次来访时,网站把该用户ID对应的计数器加1,得到用户的来访次数或判断用户是新用户还是老用户。

按照用户的喜好定制网页外观

有的网站设计者,为用户提供了改变网页内容、布局和颜色的权力,允许用户输入自己的信息,然后通过这些信息对网站的一些参数进行修改,以定制网页的外观。

在电子商务站点中实现诸如“购物篮”等功能

可以使用Cookie记录用户的ID,这样当你往“购物篮”中放了新东西时,网站就能记录下来,并在网站的数据库里对应着你的ID记录当你“买单”时,网站通过ID检索数据库中你的所有选择就能知道你的“购物篮”里有些什么。

在一般的事例中,网站的数据库能够保存的有你所选择的内容、你浏览过的网页、你在表单里填写的信息等;而包含有你的唯一ID的Cookie则保存在你的电脑里。


Cookies的缺陷

Cookie虽然被广泛的应用,并能做到一些使用其它技术不可能实现的功能。但也存在一些不够完美的方面,给应用带来不便。

多人共用一台电脑的问题

任何公共场合的电脑或者许多在办公室或家里使用的电脑,都会同时被两个以上的人使用。这样,当你用它在网上超市购物时,网上超市或网站会在这台机器上留下一个Cookie,将来也许就会有某个人试图使用你的账户购物,带来了不安全的可能。当然,在一些使用多用户操作系统如Windows NT或UNIX的电脑上,这并不会成为一个问题。因为在多用户操作系统下不同的账户的Cookie分别放在不同的地方。

Cookies被删除时

假如你的浏览器不能正常工作,你可能会删除电脑上所有的临时Internet文件。然而,一旦这样操作以后,你就会丢掉所有的Cookies文件。当你再次访问一个网站时,网站会认为你是一位新用户并分配给你一个新的用户ID以及一个新的Cookie。结果将会造成网站统计的新老用户比发生偏差,而你也难以恢复过去保存的参数选择。

一人使用多台电脑时

有的人一天之中经常使用一台以上的电脑。例如在办公室里有一台电脑、家里有一台、还有移动办公用的笔记本电脑。除非网站使用了特别的技术来解决这一问题,否则,你将会有三个不同的Cookies文件在这三台机器上,而在三台机器上访问过的任何网站都将会把你看成三个不同的用户。


防范Cookies泄密

想知道你访问的网站是否在你的硬盘或内存中写入了Cookies信息吗?只需执行下面的操作步骤,就可以了解和控制你正在访问的网站的Cookies信息。

步骤一 点击IE窗口中的“工具” “In-ernet选项”,打开“Internet选项”设置窗口;

步骤二 点击“Internet选项”设置窗口中的“安全”标签,然后再点击“自定义级别”按钮,进入“安全设置”窗口;

步骤三 找到“安全设置”窗口中的“Cookies”设置项。“Cookies”设置项下有两个分选项,其中“允许使用存储在您计算机上的Cookies”是针对存储在用户计算机硬盘中的Cookies文件;“允许使用每个对话Cookies(未存储)”是针对存储在用户计算机内存中的Cookies信息。存储在硬盘中的Cookies文件是永久存在的,而存储在内存中的Cookies信息是临时的。要想IE在即将接收来自Web站点的所有Cookies时进行提示,可分别选择上面两个分选项中的“提示”项。当然,你也可以选择“启用”,允许IE接受所有的Cookies信息(这也是IE的默认选项);选择“禁止”,则是不允许Web站点将Cookies存储到您的计算机上,而且Web站点也不能读取你计算机中已有的Cookies。

IE6.0提供了更为可靠的个人隐私及安全保护措施,可以让用户来控制浏览器向外发送信息的多少。在“Internet 选项”窗口中新增了“隐私”选项卡(图1),用户可以在其中直接设置浏览时的隐私级别,按需要控制其他站点对自己电脑所使用的Cookies。如果我们正在浏览的站点使用了Cookie,那么在浏览器状态栏中会有一个黄色惊叹号的标记,双击后可打开“隐私报告”对话框,用户可以在其中查看具体的隐私策略,还可直接点击“设置”按钮后在上述“隐私”选项卡中调节安全隐私级别。

在“常规”选项卡中还增加了“删除Cookies”按钮(图2),方便用户直接清除本机上的Cookies。另外,在“工具” “选项” “高级”选项卡中也增加了一些进一步提高安全性的选项(如关闭浏览器时清空Internet临时文件)。其实,如何更好地保护个人隐私和安全是微软下一代“.NET”战略软件中的关键技术,现在IE6.0已经尝试着迈出了第一步。

另外,由于Cookies的信息并不都是以文件形式存放在计算机里,还有部分信息保存在内存里。比如你在浏览网站的时候,Web服务器会自动在内存中生成Cookie,当你关闭IE浏览器的时候又自动把Cookie删除,那样上面介绍的两种方法就起不了作用,我们需要借助注册表编辑器来修改系统设置。要注意的是,修改注册表前请作备份,以便出现问题后能顺利恢复。

运行Regedit,找到如下键值:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionInternet SettingsCacheSpecial PathsCookies,这是Cookies在内存中的键值,把这个键值删除。至此Cookies无论以什么形式存在,我们都不用再害怕了。

最后有必要说明的一点是:杜绝Cookies虽然可以增强你电脑的信息安全程度,但这样做同样会有一些弊端。比如在一些需要Cookies支持的网页上,会发生一些莫名其妙的错误,典型的例子就是你以后不能使用某些网站的免费信箱了。


Cookies欺骗

通过分析Cookie的格式,我们知道,最后两项中分别是它的URL路径和域名,服务器对Cookie的识别靠的就是这两个参数。正常情况下,我们要浏览一个网站时输入的URL便是它的域名,需要经过域名管理系统DNS将其转化为IP地址后进行连接。若能在DNS上进行一些设置,把目标域名的IP地址对应到其它站点上,我们便可以非法访问目标站点的Cookie了。

要进行Cookies欺骗,其实很简单。比如在Win9X下的安装目录下,有一名为hosts.sam的文件,以文本方式打开后会看到这样的格式:

127.0.0.1 localhost

经过设置,便可以实现域名解析的本地化,只需将IP和域名依上面的格式添加到文件中并另存为hosts即可。hosts文件实际上可以看成一个本机的DNS系统,它可以负责把域名解释成IP地址,它的优先权比DNS服务器要高,它的具体实现是TCP/IP协议中的一部分。

比如我们要读取的目标站点 www.abc.com 所生成的Cookies信息,可以借助www.def.com(自己的站点)。在www.def.com 存放用来进行欺骗所需的文件,通过它读取和修改对方的Cookie。

步骤一 ping出www.def.com 的IP地址:

ping www.def.com

Reply from 192.168.0.1: bytes=32 time=20ms TTL=244

然后修改hosts.sam文件如下:

192.168.0.1 www.abc.com

并保存为hosts文件。

步骤二 读取Cookies信息:

将用来读取Cookie的页面传至www.def.com ,此时连上www.abc.com,由于我们进行本机DNS域名解析的修改,这时网络连接的并不是www.abc.com,而是www.def.com 。

这样www.abc.com设在本地的Cookie便可被读出。

步骤三 同样道理,你可对读出的数据进行修改,并可将修改后的信息写入Cookie中。修改完毕后,删掉hosts文件,再重新进入www.abc.com,此时所使用的Cookies数据就是你制定的数据。

总之,在某种程度上虽然可以实现Cookies的欺骗,给网络应用带来不安全的因素,但Cookies文件本身并不会造成用户隐私的泄露,也不会给黑客提供木马程序的载体,只要合理使用,它们会给网站管理员进行网站的维护和管理以及广大用户的使用都带来便利。


Cookies集合具有以下几种属性

1.Expires属性:此属性用来给Cookies设置一个期限,在期限内只要打开网页就可以调用被保存的Cookies,如果过了此期限Cookies就自动被删除。如:

设定Cookies的有效期到2004年4月1日,到时将自动删除。如果一个Cookies没有设定有效期,则其生命周期从打开浏览器开始,到关闭浏览器结束,每次运行后生命周期将结束,下次运行将重新开始。

2.Domain属性:这个属性定义了Cookies传送数据的唯一性。若只将某Cookies传送给搜狐主页时,则可使用如下代码:

3.Path属性:定义了Cookies只发给指定的路径请求,如果Path属性没有被设置,则使用应用软件的缺省路径。

4.Srcure属性:指定Cookies能否被用户读取。

5.Haskeys属性:如果所请求的Cookies是一个具有多个键值的Cookies字典,则返回True,它是一个只读属性。
参考资料:http://tech.pcicp.com/tools/nettools/browser/2004/12/21/1103612532d8780.html
回答者: zhangqi645 - 助理 二级 2-3 04:38
Cookies

很少有网络技术能够象cookies来在网络用户间制造这样大的争论。Cookies只是一个无辜的名字,但是许多用户将这与邪恶的目的连在一起。

Netscape首先在它的浏览器中引入了cookies,从那时起,World Wide Web协会就支持cookie标准。大部分浏览器现在都兼容cookie的使用。

Cookies是什么?浏览器用一个或多个限定的文件支持Cookie。这些文件在Windows机器上叫做Cookie文件或者在Macintosh中叫做magic cookie文件,被网站用来在上面存储Cookie数据。网站可以在这些Cookie文件中插入信息。这样对有些网络用户就有些副作用。有些用户认为这造成了对隐私的侵犯。更糟的是:有些人认为Cookie是对个人空间的侵占。

目前有些Cookie是临时的,还有一些则是持续的。例如,cookies被Active Sever Pages用来跟踪用户进程直到用户离开网站。另外有些Cookie则保持在Cookie文件中直到用户返回时又进行调用。

在cookie文件中保存cookies会产生很大的问题。主要是有些用户担心会跟踪用户网上冲浪的习惯。害怕这种信息如果落入一些‘黑手’,那么个人也就可能成为一大堆广告垃圾信笺的对象,不过,这种担心根本不会发生,因为无法跨过网站来获得cookie信息,以这种目的来应用Cookie是不可能的。不过,由于一些用户错误的理解以及‘以讹传讹’,一些浏览器开发商别无选择只能作出响应(例如Netscape4.0提供了屏蔽Cookie的选项)。

 

注意

目前一些有关Cookie侵犯隐私权的讨论已经到了歇斯底里的地步,甚至包括网站站长、专家级的一些人物也在这种认识上犯过错误。

目前的主流浏览器是这样的,IE和NETSCAPE都提供了附加的控制Cookie的手段,其中NETSCAPE4.0不但可以对接受Cookie进行警告,而且还可以屏蔽掉Cookie, IE3.0也可以屏蔽Cookie,但是由于微软开发出了Active Server Pages,因此在IE4.0中就只能进行接受警告而没有提供屏蔽选项。

更过分的是,很多技巧的技术甚至已经可以在不能屏蔽cookie的浏览器上进行Cookie的屏蔽。例如,将你的cookie文件作成只读(参见http://www.cookiecentral.com)

很不幸,由于上述原因,你的网站利用Cookie就会有各种麻烦,甚至造成Session的调用失败。

Cookie是怎样工作的

Cookies将通过HTTP Headers来从服务端返回到浏览器上。服务端首先在响应中利用Set-Cookie header来创建一个Cookie,浏览器后面的请求的cookie header中就会返回这个Cookie来完成浏览器的认证。

假设你创建了一个名字为UserName的Cookie来包含访问者的信息,创建Cookie时,Server的Header就象下面(假设访问者为Bill Gates):

Set-Cookie: UserName=BILL+Gates;path=/;domain=aspsite.com;

expires=Tuesday,01-Jan-99 00:00:01 GMT

这个Header就在浏览器的电脑上的Cookie文件中添加了一条记录。浏览器将名字为UserName的Cookie赋值为Bill Gates。请注意这个cookie的值是进行了URL-encoded操作的。

后来,header通知浏览器将cookie通过请求以忽略路径的方式返回服务端,因此,一个Cookie设定后,其应用的所有文件就必须在同一个目录下,例如如果开始指定的路径是/private目录,那么cookie Header对文件:/private/mypage.asp的请求就可以,而/mypage.asp由于路径变动就无法利用这个Cookie了。

domain属性能够在浏览器端更加对cookie发送进行限定。在这个例子中,cookie只能传到指定的服务器上,而决不会跑到什么www.yahoo.com或者什么其他网站。

注意

现在的浏览器在判断Cookie的路径时是区分大小写的,这就意味着如果路径是/private,那么以/PRIVATE路径方式就无法进行这个Cookie的调用和认证。

最后,Expires标记限定了Cookies的过期时间,在例子中的Header中,限定浏览器将该Cookie保存到1999年1月1日第一秒,实际上,浏览器在接受的Cookie很多时,还会自动进行删除。

浏览器创建了一个Cookie后,在每一个针对该网站的请求时就都会在Header中带着这个Cookie,也就是每一次满足该路径的情况下这个Cookie都会有效。不过,对于其他网站的请求Cookie是绝对不会跟着发送的。浏览器会这样一直发送到Cookies过期为止。Cookie Header如下:

cookie: username: Bill+Gates

在Active Server Pages中创建和读取Cookies

当利用Active Server Pages创建了一个cookie之后,你就可以使用Response对象的Cookie集合了。你可以创建两种cookie;一种是单值的,另一种可以认为是cookie字典类型,即允许多个键值对的存在。

创建单值的相对简单,如下脚本:

<% Response.Cookies(“Username”)=”Bill Gates”

Response.Cookies(“Username”).Expires=”Jan 1,1999”

%>

这个脚本的工作一目了然,将名字为Username的Cookie赋值为Bill Gates, 同时将过期时间限定为1999年1月1日,这里面需要说明的是,Expires属性如果不进行赋值,那么默认的就是用户一离开网站就过期。

由于这个例子脚本创建的是Header的部分,那么你就必须在你的Active Server Pages的任何输出语句之前进行这个脚本的操作,或者使用Buffer输出,(参看14章的有关小节)。

前面的脚本是创建一个Cookie的简单示例,只是使用了最常用的Expires属性,其实还有许多其他属性也可以自行设置,下面是一个比较完全的例子:

<%

Response.Cookies(“Username”)=”Steve Jobs”

Response.Cookies(“Username”).Expires=”Jan 1, 1999”

Response.Cookies(“Username”).Path=”/examples”

Response.Cookies(“Username”).Domain=”aspsite.com”

Response.Cookies(“Username”).Secure=True

%>

这个脚本例子和前面的其实没有什么区别,不过有三个附加的属性需要解释:

■Path属性是用来更加严格的限定浏览器发送Cookie,在这个例子中,只有针对于 /examples目录的请求的Header中才携带Cookie信息,例如/examples/hello.asp以及 /examples/chapter16/hello.asp的请求都会在Header上携带Cookie信息,但是如果是浏览器对/hello.asp的请求就不会携带该Cookie信息。Path属性的默认值是该Cookie创建的Active Server Pages所在的路径。(也就是说,即便不做指定,也不会跨过目 录发送Cookie)

■Domain属性,限定了Cookie发送的网站,例子中的aspsite.com说明cookie可以被发送到www.aspsite.com或者beetle.aspsite.com或者yeah.aspsite.com等等,同样作为默认值是该Cookie创建的网站。

■最后是Secure属性,顾名思义,该属性设为True则传递中就实行了加密算法,如果你正在使用安全接口层,那么你就可以使用这个属性(参见第二章,安装使用 Internet Information Server)

在一个Active Server Page中读取cookie,你只需要使用Request对象的Cookies集合, 例如,输出一个cookie值,那么脚本如下:

<%=Request.Cookies(“Username”) %>

这个脚本将名字为Username的Cookie值进行了输出,和以前同样的是,你依然可以利用For Each循环或者利用Count属性和For …Next循环结合的方式来将Cookie集合 的所有属性值显示出来,下面这个例子的运行结果应当无须解释了。

<%

For EACH thing IN Request.Cookies

Response.write(“<BR>”&thing&Request.Cookies(thing))

NEXT

%>

创建多个Cookie

你当然还可以创建不止一个Cookie,只是在Response对象的Cookies集合中简单的定义多个名称就可以了。不过,许多浏览器对一个指定网站就限定了三到四个Cookie。

创建多个Cookie还有一种选择,就是创建一个Cookie字典,那么一个Cookie字典中就可以含有多个键值对,下面是这么一个字典的例子:

<%

Response.Cookies(“User”)(“Name”)=”Bill Gates”

Response.Cookies(“User”)(“Password”)=”billions”

%>

这个脚本创建了一个名为User的Cookie字典,其中含有两个键分别是Name和 Password,当这么Cookie字典创建时,请求的Header中是这样的信息:

Set-Cookie:User=Name=Bill+Gates&Password=billions

一个名字为User的Cookie创建了,其中含有两个键值对,这意味着所有的键和相应的值都在一个大的Cookie中。

接受这样的Cookie值,你还可以利用以前的Response对象的Cookies集合,既可以将其全部显示,(这样显示就是没有经过解码的Header中的源代码,也就是上面Header中的信息,这样一般都是用于调试工作)也可以按每一个键的相应名称显示相应值,如下例,无须解释结果:

<%=Request.Cookies(“User”) %>

<%=Request.Cookies(“User”)(“Name”)%>

<%=Request.Cookies(“User”)(”Name”)%>

注意

利用Cookie技术传递诸如密码这样的信息要特别小心,因为一般说来,这种信息是未经加密的,当然,如果你的网站有安全接口层技术,也可以进行加密传输,但是在浏览器端该信息还是存放在文本文件中。

如果希望知道一个Cookie是否是一个Cookie字典,可以用HasKeys属性,例如下面脚本如果返回值为True,那么就是一个Cookie字典。

<%=Request.Cookies(“User”).HasKeys %>

原创粉丝点击