在asp.net中使用cookie

发布时间:2020-12-08编辑:脚本学堂
在asp.net中使用cookie

Cookies 用于存储特定用户信息,它提供了Web程序中一种有用的方式。多年以来,javascript开发人员已经进行了有关cookie的大量工作。同 样,ASP.NET通过System.Web空间名称也提供了cookie的访问。虽然你不应该使用cookie来存储一些敏感性的数据,但是,它们是处 理锁细数据的一个极好的选择,比如颜色参数选择或者最后一次访问日期。

传递cookies
cookie是存储在客户端计算机的一个小文件。如果你是一个Windows用户,可以在用户路径中查看Cookies路径,即为Documents And Settings路径。这一路径包含这一文件名称的文本文件:
username @ Web site domain that created the cookie

(用户名称@建立cookie的站点域名)
.NET System.Web空间名称包含三个类,你可以使用它们来处理客户端的Cookies:
HttpCookie:提供一个建立和操作独立HTTP cookies的安全类型的方式。
HttpResponse:Cookies属性允许客户端cookies被操作。
HttpRequest:Cookies属性允许访问客户端操作的cookies。
HttpResponse和HttpRequest对象的Cookies属性将返回一个 HttpCookieCollection对象,它包含着,将单独的cookies添加到集合(collection)中,以及从集合 (collection)获得一个单独的cookies。

HttpCookie类
HttpCookie类针对于客户存储之用而建立的单独cookies。一旦 HttpCookie对象被建立,你可以将其添加到HttpResponse对象的Cookies属性中。同样的,你可以通过HttpRequest对象 访问现有的cookies。HttpCookie类包含以下的公有属性:
Domain(域名):获得或设置与cookie有关的域名,可用于限制特定区域的cookie访问。
Expires(期限):获得或设置cookie的终止日期和时间,你可以将其设置为一个过去的日期以自动终止或者删除cookie。
Names(名称):获得或设置cookie名称。
Path(路径):获得或设置cookie的虚拟路径。这一属性允许你限制cookie范围,也就是说,访问cookie只能限制于一个特定的文件夹或者路径。设置这一属性限制为只能访问特定路径和该路径下的所有文件。
Secure(安全):发信号以表示是否使用Secure Sockets Layer (SSL)来发送cookie值。
Value(值):获得或设置一个单独的cookie值。
Values(信息):返回包含在cookie中的key/value的一个集合。

对于这些属性的使用,以下VB.NET范例给予最好的理解:
Dim testCookie As New HttpCookie("LastVisited")
testCookie.Value = DateTime.Now.ToString
testCookie.Expires = DateTime.Now.AddDays(7)
testCookie.Domain = "builder.com"
Response.Cookies.Add(testCookie)
这一代码段建立了一个名为LastVisited的新的cookie,并赋予当前日期和时间的值。同样的,cookie终止期限 设置为一个星期,相关的范围为populated。一旦建立对象,通过Response.Cookies对象的Add方法就可以将对象添加到客户端的 cookies集合。HttpCookie构造函数中的方法有两种:
HttpCookie objectName = New HttpCookie("cookieName")
HttpCookie objectName = New HttpCookie("cookieName", "cookieValue")
同样,Response对象包含一个SetCookie方法,这一方法可以接受一个HttpCookie对象。

我的cookie在哪里?
一旦cookies被保存在客户端,有多种不同的方法以提供你访问它们。如果你知道cookie名称,可以使用HttpResponse对象很容易地访问它的值。以下VB.NET行显示了与cookie有关的值:
Response.Write(Request.Cookies("LastVisitied").Value)