Asp.net Cookies 新手指南

系统 2462 0

译(Beginner's Guide To ASP.NET Cookies)

原文来自于 http://www.codeproject.com/KB/aspnet/Beginners_Cookies.aspx

Asp.net Cookies 新手指南

目录

•介绍

•什么是Cookies?

•怎样启动Cookies?

•Cookies 的优势

•Cookies 的劣势

•如何建立Cookies?

•怎样从Cookies 中读取数据?

•什么是持久性Cookies 和非持久性Cookies?

•Cookies 存储在本地驱动器的那里?

•怎样在删除未过期的技久性cookies?

•如何控制Cookies的范围?

•Cookie Munging

- 什么是Cookie Munging?

- 我们为什么在Asp.net 中用Cookie Munging?

- Cookie Munging 如何工作?

- 如何实现Cookie Munging?

•在浏览器中怎样配置Cookies?

介绍

首先要感谢阅读我以前所有文档并赞成我的读者。Wow ,我的伟大支持者就来自于你们。再一次感谢Sean Ewingto开始与新手起步web 开发文章中的一个非常奇妙的想法。我以前也为初学者写过一些文章,当我的 View State新手指南显示在主页 “编辑选择”部分时,我真的感深觉很得意。下面是我最近为初者学写的文档。

Exploring Caching in ASP.Net

Beginner’s Guide To View State

Beginner’s Guide To ASP.NET Application Folder

Cookies, Session,And Application 是队列中的对象。现在我们来了解Cookies, 我花了一些时间为这篇文章做准备。你会惊讶的发现介绍部分是我发表文章前的最后一个话题。在写这篇文单写,我看过很多相关文档和书籍,此外还做了一些实践。希望我讲解的够清楚,也希望你们能够喜欢这篇文章并请给我你好的建意。

什么是Cookies?

Cookies 是创于在客户端系统或客户浏览器内存(如果是临时)上的一个小文件。它用于状态管理,在我的文章View State中已有讨论。所以我们可以在客户端系统存储并且在我们需要的时候使用它。有趣的是用户以透边的方式工作。它可以方便的应用于你的web 应用程序。Cookies的信息以纯文本格式存储。如果web应用程序用了cookies,服务器发送cookies将在客户端浏览器存储。浏览器将在下一次页面请求的时候将cookies 返回给服务器。很多通用的例子是用cookies 来存储用户的信息,用户的偏好,密码记忆选项等。就些点,Cookies 有好处也有坏处。但首先来看一看cookied是如何启动的

Cookies是如何启动的?

当客户端请求到达服务器,服务器发送cookies 到客户端。后续的请求可以引用同一个Cooke。举个例子,如codeproject.com 在cookies 中存储session id ,当客户端第一次服务器上点击,服务器生成一个seesion id 并将这样的一个cookies 发送到客户端。

现在同一客户端的所有后续请求都可以可以使用Session ID,如下图

浏览器和web 服务器负责交换cookies 的信息。对于不同的站点,浏览器保证cookies的不同,如果页面需要从cookies 得到信息,当你点击URL,首先找查本地系统的cookies的信息然后再到服务器上查看信息。

Cookies的优势

下面是web 应用cookies的主要优势:

- 使用和实施非常简单。

- 浏览器照顾发送数据。

- 对于多站点cookies,浏览器自动安排它们。

Cookies的劣势

Cookies的主要劣势是:

- Cookies以个简单的文本格式存储。因此它是不够安全。

- Cookies 数据有一个大小限制(4096bytes /4KB)

- Cookies也限制数量,大多数浏览器提拱最大20个的限制。如果有一个新的cookies,将舍弃一个旧的cookies.有些浏览器支持多达300个cookies

- 我们需要配制浏览器。它不能工作在浏览器的高安全配制。【我会详细的讲解这些】

如何创建cookies?

使用cookies 我们需要使用名称空间 system.web

Using System.Web;

现在来看一下代码,我们是怎么创建cookies 并且将它加于web 响应。

//createing a cookies object

HttpCookie _userInfoCookies = new HttpCookies(“UserInfo”);

//Setting values inside it

_userInfoCookies[“UserName”]=”Abfdafa”;

_userInfoCookies[“UserColor”]=”Red”;

//Adding cookies to current web response

Response.Cookies.Add(_userInfoCookies);

已创建一个的cookies一直持续到浏览器关闭。我们可以让这个cookies 持续,如何做到?稍后我会对些进行探讨。

如何从cookies 中读取数据?

现在,是时间从cookies 中获取数据了。在读取cookies之前,首先我们要检测cookies 能否被找到。好的做法是在检查之前读取它,因为浏览器禁用cookies.

//retrieve cookies by cookies name

HttpCookie _userInfoCookies = Request.Cookies[“UserInfo”]

String username;

If (_userInfoCookies !=null)

{

username = _userInfoCookies[“UserName”];

}

什么是持续和非持续性cookies?

Cookies我们可以有两种分类,

- 持续性cookies

- 非持续性cookies

持续性cookies: 这里可以被称为永久性cookies, 它存储在客户端的硬盘上里直到它过期。持续性cookies应该设置五个过期日期。通常它一直停留到用户删除它。持续性cookies通常一用于收集系统用户的辨识信息。在“怎样创建一个持续性cookes“部分我有讨论关于如何创建持续性cookies.

非持续性cookies: 这里被称为临时cookies.如果cookies没有定义过期时间它将存储在浏览器内存中。我们已给也一个非持续性cookies的示例。

因此持续性和非持续性cookies之间没有什么差别。他们之间的差别仅仅是技续性cookies有过期时间的定义,非持续性cookies没有。

如何使cookies持久?

我已经给出了一个非持续性的cookies,对于持续性cookies,我们仅仅只需要添加一个过期时间。在那段代码里我们加入5天的过期时间。检测一下该示例。

//Creting a Cookie Object

HttpCookie _userInfoCookies = new HttpCookie("UserInfo");

//Setting values inside it

_userInfoCookies["UserName"] = "Abhijit";

_userInfoCookies["UserColor"] = "Red";

_userInfoCookies["Expire"] = "5 Days";

//Adding Expire Time of cookies

_userInfoCookies.Expires = DateTime.Now.AddDays(5);

//Adding cookies to current web response

Response.Cookies.Add(_userInfoCookies);

现在,看一下我们感兴趣的事情,cookies存储在硬盘哪里。

Cookies存储在本地硬盘的那里?

从本地硬盘中找出cookies是一件有趣的事。首先,从“文件管理器选项”,选择->显示隐藏的文件和文件夹。

现在查看 文件和设定 并打开当前用甩的cookies 文件夹,看下图.

如何移除未过期的持续性Cookies?

这同样是一个好玩的任务,如果你想移除一些未过期的cookies,你唯一只有至换cookies中以前的过期日期。

HttpCookie _userInfoCookies = new HttpCookie("UserInfo");

//Adding Expire Time of cookies before existing cookies time

_userInfoCookies.Expires = DateTime.Now.AddDays(-1);

//Adding cookies to current web response

Response.Cookies.Add(_userInfoCookies);

如何控制cookies的范围?

我们可用如下的方式控制cookies的范围

- 限制cookies的路径

- 限制cookies的域

什么是Cookies Munging?

Asp.net默认用cookies来存储会话的id, 但是我们已讨论过一些浏览器是不支持cookies,针对于这个问题,asp.net 将使用“Cookies Munging”来管理cookie的会话变量。

虽然这也关系到会话,我将给也一个基本的概述。我将在另一篇session 的文章中详细阐述。

我们为什么要在asp.net中用cookies munging?

这里有在asp.net 中使用cookies munging的一些特殊的原因

- 一些浏览器不支持cookies.

- 大多数时候,用户禁用了浏览器的cookies.

Cookies Munging 是怎样工作的?

当用户请求于服务器务器的一个页面。服务器加密会话ID,并且将它加于页面的每个超连接中。当用点击这些连接,asp.net解密这些会话ID并传递页面用户请求。现在请求页面会收到一些变量会话。如果asp.net发现用户的浏览器不支持cookies,这一切是自动的。

如何实现Cookie Munging?

为些我们要向做成少cookies的会放状态。

第一选项允许所有cookies,最后一个cookies禁止所有cookies,你可以滚动条的时候得到详细的设定。

摘要

这里是一些学习cookies的话题,希望对一些初学者起步有帮助。请给你的反馈意见。

Asp.net Cookies 新手指南


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论