网站建设
  简约型网页设计套餐998
  实惠型网站建设套餐2580
  综合型网站制作套餐4980
  网站改版与网站维护
  行业网站建设方案
  大型网站建设解决方案
  企业网站建设流程
  帝网科技网站设计与网站制作
建站FAQ
·网站空间问题解答
·企业邮箱问题解答
 
酷站欣赏
·房产酷站(379)
·综合门户(8 9)
·建筑装饰(603)
·手机通讯(354)
·生活购物(376)
·医疗保健(199)
·文化摄影(602)
·休闲体育(399)
>>更多酷站欣赏
网站优化
·Google(谷歌)优化   ·百度(BaiDu)优化
·雅虎(Yahoo)优化    ·Alexa排名优化   
·Google AdSense   ·DMOZ目录提交  
建站知识
·网站建设知识·网站名词解释·网站运营知识
·网络营销知识·搜索引擎知识·实用技术文摘
网站推广
百度网站推广 google网站推广
搜狐网站推广 网易网站推广
新浪网站推广   雅虎网站推广
  您当前位置: 当前位置:帝网科技 >> web开发 >> .NET专栏 >> 浏览文章
 
 
ASP.NET中Cookie编程的基础知识(2)
作者:袁袁整理 来源:帝网科技 日期:2008年09月24日 点击数:



 Cookie 的限制
  
    在开始讨论 Cookie 的技术细节之前,我想先介绍一下 Cookie 应用的几条限制
。大多数浏览器支持最多可达 4096 字节的 Cookie,如果要将为数不多的几个值保存到用户计算机上,这一空间已经足够大,但您不能用一个 Cookie 来保存数据集或其他大量数据。在实际应用中,您可能并不希望在 Cookie 中保存大量的用户信息,而只希望保存用户编号或其他标识符。之后,当用户再次访问您的站点时,您就可以使用该用户 ID 在数据库中查找用户的详细信息。(有关保存用户信息的说明,请参阅 Cookie 和安全性。)
  
    浏览器还限制了您的站点可以在用户计算机上保存的 Cookie 数。大多数浏览器
只允许每个站点保存 20 个 Cookie。如果试图保存更多的 Cookie,则最先保存的
Cookie 就会被删除。还有些浏览器会对来自所有站点的 Cookie 总数作出限制,这个限制通常为 300 个。
  
    您最可能遇到的 Cookie 限制是:用户可以设置自己的浏览器,拒绝接受
Cookie。您很难解决这个问题,除非完全不使用 Cookie 而是通过其他机制来保存用户相关信息。保存用户信息的一种常用方法是会话状态,但会话状态又依赖于 Cookie。这一点在后面的 Cookie 和会话状态中阐述。
  
    注意:有关状态管理和 Web 应用程序中用于保存信息的选项的详细信息,请参阅Introduction to Web Forms State(英文)和 State Management Recommendations(
英文)。   更一般的经验很可能是,尽管 Cookie 在应用程序中非常有用,应用程序也不应该依赖于能够保存 Cookie。利用 Cookie 可以做到锦上添花,但不要利用它们来支持关键功能。如果您的应用程序必须使用 Cookie,则您可以通过测试来确定浏览器是否接受 Cookie。我在本文后面的检查浏览器是否接受 Cookie 一节中简单介绍了一种测试方法

  
    编写 Cookie
  
    您可以利用页面的 Response(英文)属性来编写 Cookie,该属性提供的对象使
用户可以将信息添加到由页面向浏览器呈现的信息中。Response 对象支持一个名为
Cookies(英文)的集合,您可以向其中添加要写入浏览器的 Cookie。
  
    注意:下面要讨论的 Response 对象和 Request 对象分别是包含 HttpResponse
(英文)和 HttpRequest(英文)类实例的页面的属性。要在文档中查找 Response 和
Request 的信息,请参阅 HttpResponse 和 HttpRequest 下的内容。
  
    在创建 Cookie 时,您需要指定几个值。最初,您要指定 Cookie 的名称和其中
保存的值。您可以创建多个 Cookie,每个 Cookie 都必须具有唯一的名称,以便日后读取时识别。(Cookie 是按名称保存的,所以如果您创建了两个名称相同的 Cookie,后保存的那一个将覆盖前一个。)
  
    您可能还希望指定 Cookie 的过期日期和时间。Cookie 一般都写入到用户的磁盘
,然后可能一直都留在磁盘上。因此,您可以指定 Cookie 过期的日期和时间。当用户再次访问您的站点时,浏览器会先检查您站点的 Cookie 集合,如果某个 Cookie 已经过期,浏览器不会把这个 Cookie 随页面请求一起发送给服务器,而是删除这个已经过期的 Cookie。(您的站点可能已经在用户计算机上写入了多个 Cookie,每个 Cookie 都有各自的过期日期和时间。) 请注意,由浏览器负责管理硬盘上的 Cookie,这将影响您在应用程序中对 Cookie 的使用,我很快会介绍这方面的内容。
  
    一个 Cookie 的有效期应为多长?这取决于 Cookie 的用途,换句话说,取决于
您的应用程序需要 Cookie 值保持有效的时间有多长。如果利用 Cookie 统计网站的访
问者,您可以把有效期设置为 1 年,如果某个用户已有一年时间未访问您的站点,则可以把该用户当作新的访问者; 如果利用 Cookie 来保存用户的首选项,则可以把其设置为永远有效(例如 50 年后到期),因为定期重新设置首选项对用户而言是比较麻烦的。有时,您可能需要编写在数秒或数分钟内即过期的 Cookie。在本文后面的检查浏览器是否接受 Cookie 一节中,我列举了一个示例,该示例中创建的 Cookie 的实际有效期就只有几秒。
  
    注意:不要忘记用户随时可以删除自己计算机上的 Cookie,所以即使您保存了长期有效的 Cookie,用户也可以自行决定将其全部删除,同时清除保存在 Cookie 中的所有设置。
  
    如果没有设置 Cookie 的有效期,还是可以创建 Cookie,但它不会保存到用户的硬盘上,而是会成为用户会话信息的一部分。如果用户关闭浏览器或会话超时,该 Cookie 就会被删除。这种非永久性的 Cookie 很适合用来保存只需短时间保存的信息,或者保存由于安全原因不应该写入客户计算机磁盘的信息。例如,如果用户使用的是一台公用计算机,而您不希望把 Cookie 写入这种计算机的磁盘上,这时就可以使用非永久性的 Cookie。
  
    您可以通过多种方法把 Cookie 添加到 Response.Cookies 集合中。以下示例介
绍了两种完成此任务的方法:
  
  Response.Cookies("userName").Value = "mike"
  Response.Cookies("userName").Expires = DateTime.Now.AddDays(1)
  
  Dim aCookie As New HttpCookie("lastVisit")
  aCookie.Value = DateTime.Now.ToString
  aCookie.Expires = DateTime.Now.AddDays(1)
  Response.Cookies.Add(aCookie)
  
    该示例向 Cookies 集合中添加了两个 Cookie,一个称为“userName”,另一个
称为“lastVisit”。对于第一个 Cookie,我直接设置了 Response.Cookies 集合的值
。您可以使用这种方法向集合中添加值,因为 Response.Cookies 是从
NameObjectCollectionBase(英文)类型的特殊集合派生得到的。

  相关文章
 
·ASP.NET使用log4Net日志组件教程(日志
·ASP.NET MVC 框架
·C#实现的BinaryTree
·WebForms使用System.Web.Routing
·ASP.NET获取远程网页下载到本地文件
·一个“简单”的ASP.NET的服务器控件
·ASP.net与PHP两大网站开发架构优势对比
·教你七招提高.NET网站性能
·ASP.NET未来:简化开发 HTML5性能提升
·ASP.NET实现类似Excel的数据透视表
·FileUpload上传多文件出现错误的解决方
·.NET从优酷专辑中采集所有视频及信息(
·ASP.NET 4中的SEO改进
·详解Asp.net MVC DropDownLists
·提高ASP.NET应用程序性能的几招方法
·asp.net实现51job地区选择效果
·ASP.NET中创建GeoRSS订阅源
·ASP.NET 4.0开发更加简便
·ASP.NET页面间数据传递的方法
·ASP.NET的SEO:使用.ashx文件——排除
 
 

公司环境 | 合作伙伴 | 人才招聘 | 付款方式 | 关于我们

地址:广州市天河区中山大道中120号D805 电话:020-82529556 传真:020-82529556
广州帝网网络科技有限公司 版权所有 粤ICP备08119341号