`

ASP.NET中利用cookies保持客户端信息

阅读更多

作者:未知   请作者速与本人联系



我当前所吃的东东都固定为食物,所以一点也不惊讶,这一周的主题为cookies。

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的一个集合。

虽然这些还不是一个最详尽的列表,但它提供了处理cookies所需要的东西。对于这些属性的使用,以下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)

除此之外,可以通过一个HttpCookieCollection对象访问cookies的完整列表。这就使得cookie列表可以用一个for循环来访问。以下C#代码说明了这样的例子:

HttpCookieCollection cookies;

HttpCookie oneCookie;

cookies = Request.Cookies;

string[] cookieArray = cookies.AllKeys;

for (int i=0; I < cookieArray.Length; i++) {

oneCookie = cookies[cookieArray[i]];

Response.Write(oneCookie.Name + " - " + oneCookie.Value);

}

VB.NET中相应的代码如下:

Dim i As Integer

Dim oneCookie As HttpCookie

For i = 0 To Request.Cookies.Count - 1

oneCookie = Request.Cookies(i)

Response.Write(oneCookie.Name + " - " + oneCookie.Value)

Next I

稳定也是一个观点
cookie文件存放在客户端机器,所以你的用户可以任意删除或更改。此外,用户还可以使cookies无效化。基于此原因,请记住不要依赖cookie数据。你应该将重要的信息保存在服务器──特别是一个数据库中。

在一个cookie中存储关键信息被认为是一种低级的程序设计,因为这些信息很容易被泄露,原因是这些信息位于客户机器的一个文件中。在这一点,一种方法就是使用SSL,这是一种可以避免敏感信息的更好方法。

我可以使用cookies吗?
用户可以在自己的浏览器上无效化cookie支持。你可以在自己的代码中访问这些设置以决定是否支持cookies。Request对象满足了这一想法,以下VB.NET代码显示了这一过程:

If Request.Browser.Cookies = True Then

'' 使用cookies

Else

''没有cookie支持

End If

可以联合代码来使用cookie值。以下C#代码段对cookie支持进行了测试,并相应地将结果显示在一个文本框:

if (Request.Browser.Cookies == true)

{

if (Request.Cookies["LastVisited1"] == null)

{

HttpCookie newCookie = new HttpCookie("LastVisited1",DateTime.Now.ToString());

newCookie.Expires = DateTime.Now.AddYears(1);

Response.Cookies.Add(newCookie);

this.txtName.Text = "Is this your first time?";

} else {

this.txtName.Text = "We haven''t seen you since " +

Request.Cookies["LastVisited1"].Value;

} }

你可以将这一代码段添加到ASP.NET页中的Page_Load事件。

保存数据的另一方式
ASP.NET提供了保存特定用户数据的多种方法。其中一个老方法就是cookies。对于敏感数据,虽然cookies不是最好的方法,但它是诸如颜色参数选择、最后一次访问日期等亲和力选项(benign items)的最佳选择。虽然这些敏感数据重要,但当用户的计算机崩溃时数据丢失,这也不是世界的末日。

分享到:
评论

相关推荐

    asp.net获取客户端IP-用户名等信息

    在ASP.NET开发中,了解如何获取客户端的IP地址和用户名是至关重要的,这有助于实现诸如用户追踪、个性化体验以及安全控制等功能。以下是对这个主题的详细解析。 首先,让我们谈谈如何在ASP.NET中获取客户端的IP地址...

    asp.net实现获取客户端详细信息

    在 ASP.NET 中,我们可以通过内置的对象和方法获取客户端的详细信息,例如浏览器类型、主机信息等。这些信息对于开发者来说非常有价值,可以帮助他们了解用户的环境,以便进行更精准的兼容性测试和用户体验优化。 ...

    ASP.NET中cookies的读写(多子值)

    在ASP.NET中,Cookie是客户端存储数据的一种机制,通常用于跟踪用户信息或保持登录状态。本文将详细介绍如何在ASP.NET中处理具有多个子值的Cookie。 首先,理解Cookie的基本概念。Cookie是由Web服务器发送到浏览器...

    ASP.NET中cookie读写方法介绍

    在ASP.NET应用程序中,cookie是一种常用的数据存储机制,用于在客户端存储少量的信息。本文将详细介绍ASP.NET中cookie的读写方法,并通过实例演示如何实现这些操作。 #### 一、Cookie的概念与作用 Cookie是在用户...

    ASP.NET——ASP.NET利用Cookie处理网上重复投票

    在本文中,我们将深入探讨如何利用 ASP.NET 中的 Cookie 功能来处理网上重复投票的问题。 Cookie 是一种在客户端(用户浏览器)和服务器之间传递信息的小型文本文件。它们通常用于存储用户的偏好设置、登录状态或...

    ASP.NET状态管理(Cookies,Session,ViewState,Application...)

    ASP.NET状态管理是Web开发中的核心概念,它用于在客户端和服务器之间持久化数据,确保用户在浏览网站时保持特定的上下文。本篇将详细探讨四种主要的状态管理技术:Cookies、Session、ViewState和Application。 **...

    纯asp.net课堂练习

    8. 视图状态(ViewState):ASP.NET中用于在页面刷新时保持控件状态的技术,对于保持用户输入数据或页面控件设置非常有用。 9. 部署:了解如何将ASP.NET应用发布到IIS服务器,进行网站的上线部署。 10. CSS和...

    asp.net面试题收集(附答案)

    在ASP.NET中,jQuery可以与ASP.NET AJAX集成,实现更高效的客户端脚本编写。 9. **ASP.NET 中的路由是什么?** - 路由允许自定义URL结构,提高SEO友好性。在Global.asax中配置路由规则,可以将URL映射到特定的控制...

    asp.net程序设计(C#)版课后题答案

    6. **页面间数据传递**:在ASP.NET中,数据可以在页面之间传递使用多种方式,如Query String、View State、Session、Application、Cookies或者隐藏字段。理解这些方法的优缺点和适用场景对于开发大型Web应用至关重要...

    asp.net中Cookie的用法

    在ASP.NET应用程序中,Cookie是一种常用的数据存储机制,用于在客户端浏览器中保存信息。这些信息可以是用户偏好设置、登录状态等,以便于服务器端跟踪用户的活动或者实现一些特定的功能。下面将详细介绍如何在ASP...

    【ASP.NET编程知识】asp.net中的cookie使用介绍.docx

    在 ASP.NET 中,Cookie 是一种常用的会话跟踪机制,允许开发者在客户端存储和检索数据。本文将对 ASP.NET 中的 Cookie 使用进行介绍,包括 Cookie 的基本概念、操作、跨域设置、中文乱码问题解决方法等。 一、...

    asp.net系统对象与状态保持

    在ASP.NET中,开发者可以利用一系列内置的对象来处理请求、响应等常见的Web应用需求。这些对象包括`Page`、`Request`、`Response`和`Server`。 1. **Page对象**: - `Language`:指定页面使用的编程语言,只支持...

    asp.net实例程序

    每个ASP.NET Web页面都有自己的生命周期,包括初始化、加载视图状态、处理事件和呈现回客户端等步骤。了解这些步骤可以帮助你更好地控制页面的行为。 2. **控件与事件处理** ASP.NET提供了丰富的服务器控件,如...

    ASP.NET中Cookie对象的使用及防止重复投票代码

    在ASP.NET开发中,Cookie对象是一个非常重要的工具,它用于在客户端存储小量的数据,例如用户设置、会话标识等。本教程将深入探讨如何在ASP.NET中使用Cookie对象,并结合实际示例介绍如何利用Cookie来防止重复投票,...

    asp.net 操作cookies的通用类

    在 ASP.NET 中,操作客户端的Cookies是常见的需求,因为Cookies用于存储用户的状态信息,如登录状态、个性化设置等。下面将详细解释如何使用提供的`myCookie`类来操作Cookies。 首先,我们来看`myCookie`类的定义。...

    ASP.NET课后习题答案

    虽然具体的图片内容未给出,但我们可以基于这些信息,结合ASP.NET的基本概念和技术要点来生成相关的知识点。 ### ASP.NET基础知识 #### 1. ASP.NET概述 - **定义**:ASP.NET是微软开发的一种服务器端脚本环境,...

    ASP.NET课件(ppt)

    通过这些课件,学习者可以逐步了解ASP.NET的基本概念,掌握如何使用ASP.NET进行Web开发,以及如何利用其内置对象提高开发效率。同时,通过实例和练习,可以加深对ASP.NET的理解,为成为熟练的Web开发者打下坚实基础...

    asp.net中记住账号、密码的源代码

    而是可以存储经过哈希和盐值处理的用户名,或者使用ASP.NET的身份验证机制(如Forms Authentication),将用户信息与一个服务器端的票证关联起来。这个票证可以安全地存储在Cookie中,并在后续请求中用于验证用户...

    asp.net 集合flash使用

    根据提供的文件标题、描述、标签以及部分内容,我们可以深入探讨 ASP.NET 中如何与 Flash 进行交互,特别是关于 Cookie 的管理和使用。以下是对该主题的详细分析: ### ASP.NET 中 Cookie 的基本概念 #### 1. 创建...

Global site tag (gtag.js) - Google Analytics