当前位置:  编程技术>.net/c#/asp.net

asp.net cookie操作实例学习

    来源: 互联网  发布时间:2014-08-30

    本文导语:  1、Cookie类定义   代码示例:  // Summary:  //  Provides a type-safe way to create and manipulate individual HTTP cookies.  public sealed class HttpCookie  {   // Summary:   //  Creates and names a new cookie.   //   // Parameters:   //   name:   //  The name of th...

1、Cookie类定义
 

代码示例:

 // Summary:
 //  Provides a type-safe way to create and manipulate individual HTTP cookies.
 public sealed class HttpCookie
 {
  // Summary:
  //  Creates and names a new cookie.
  //
  // Parameters:
  //   name:
  //  The name of the new cookie.
  public HttpCookie(string name);
  //
  // Summary:
  //  Creates, names, and assigns a value to a new cookie.
  //
  // Parameters:
  //   name:
  //  The name of the new cookie.
  //
  //   value:
  //  The value of the new cookie.
  public HttpCookie(string name, string value);

  // Summary:
  //  Gets or sets the domain to associate the cookie with.
  //
  // Returns:
  //  The name of the domain to associate the cookie with. The default value is
  //  the current domain.
  public string Domain { get; set; }
  //
  // Summary:
  //  Gets or sets the expiration date and time for the cookie.
  //
  // Returns:
  //  The time of day (on the client) at which the cookie expires.
  public DateTime Expires { get; set; }
  //
  // Summary:
  //  Gets a value indicating whether a cookie has subkeys.
  //
  // Returns:
  //  true if the cookie has subkeys, otherwise, false. The default value is false.
  public bool HasKeys { get; }
  //
  // Summary:
  //  Gets or sets a value that specifies whether a cookie is accessible by client-side
  //  script.
  //
  // Returns:
  //  true if the cookie has the HttpOnly attribute and cannot be accessed through
  //  a client-side script; otherwise, false. The default is false.
  public bool HttpOnly { get; set; }
  //
  // Summary:
  //  Gets or sets the name of a cookie.
  //
  // Returns:
  //  The default value is a null reference (Nothing in Visual Basic) unless the
  //  constructor specifies otherwise.
  public string Name { get; set; }
  //
  // Summary:
  //  Gets or sets the virtual path to transmit with the current cookie.
  //
  // Returns:
  //  The virtual path to transmit with the cookie. The default is the path of
  //  the current request.
  public string Path { get; set; }
  //
  // Summary:
  //  Gets or sets a value indicating whether to transmit the cookie using Secure
  //  Sockets Layer (SSL)--that is, over HTTPS only.
  //
  // Returns:
  //  true to transmit the cookie over an SSL connection (HTTPS); otherwise, false.
  //  The default value is false.
  public bool Secure { get; set; }
  //
  // Summary:
  //  Gets or sets an individual cookie value.
  //
  // Returns:
  //  The value of the cookie. The default value is a null reference (Nothing in
  //  Visual Basic).
  public string Value { get; set; }
  //
  // Summary:
  //  Gets a collection of key/value pairs that are contained within a single cookie
  //  object.
  //
  // Returns:
  //  A collection of cookie values.
  public NameValueCollection Values { get; }

  // Summary:
  //  Gets a shortcut to the System.Web.HttpCookie.Values property. This property
  //  is provided for compatibility with previous versions of Active Server Pages
  //  (ASP).
  //
  // Parameters:
  //   key:
  //  The key (index) of the cookie value.
  //
  // Returns:
  //  The cookie value.
  public string this[string key] { get; set; }
 }

2、Cookie编程

浏览器负责管理用户系统上的Cookie,Cookie通过HttpResponse对象发送到浏览器。
 

代码示例:
Response.Cookies["TestOne"].Value = "这是第一种添加Cookie的方式";
HttpCookie cookie = new HttpCookie("TestTwo", "这是第二种添加Cookie的方式");
Response.Cookies.Add(cookie);

3、多值Cookie
可以在Cookie中存储一个值,也可以在一个Cookie中存储多个名称/值对。名称/值对称为子键
 

代码示例:
Response.Cookies["Student"]["FirstName"] = "张";
Response.Cookies["Student"]["LastName"] = "三";
Response.Cookies["Student"].Expires =DateTime.Now.AddDays(10);

4、控制Cookie的范围
默认情况下,一个站点的全部Cookie都将一起存储在客户端上,而且所有Cookie都会随着对该站点发送的任何请求一起发送到服务器。可以通过两种方式设置Cookie的范围:
将Cookie的范围限制到服务器上的某个文件夹,这允许你将Cookie限制到站点上的某个应用程序
将范围设置为某个域,这允许你指定域中的哪些子域可以访问Cookie

5、将Cookie限制到某个文件夹或应用程序
将Cookie限制到服务器上某个文件夹,需设置Cookie的Path属性
 

代码示例:
Response.Cookies["Student"]["FirstName"] = "张";
 Response.Cookies["Student"]["LastName"] = "三";
 Response.Cookies["Student"].Expires = DateTime.Now.AddDays(10);
 Response.Cookies["Student"].Path = "/Students";

  如果站点名称为www.,则在前面创建的Cookie只能用于路径http://www./Students的页面及该文件夹下的所有页面。

6、限制Cookie的域范围
默认情况下,Cookie与特定域关联。如果站点具有子域,则可以将Cookie于特定的子域关联,若要执行此操作,请设置Cookie的Domain属性。
 

代码示例:
Response.Cookies["Student"]["FirstName"] = "张";
Response.Cookies["Student"]["LastName"] = "三";
Response.Cookies["Student"].Expires = DateTime.Now.AddDays(10);
Response.Cookies["Student"].Domain = "support.contoso.com";

7、读取Cookie
 

代码示例:
if (Request.Cookies["Student"] != null)
{
 HttpCookie cookie = Request.Cookies["Student"];
   string name = Server.HtmlEncode(cookie.Value);
}

8、读取子键:
 

代码示例:

if (Request.Cookies["Student"] != null)
{
   string firstName = Server.HtmlEncode(Request.Cookies["Student"]["FirstName"]);
   string lastName = Server.HtmlEncode(Request.Cookies["Student"]["LastName"]);
}

Cookie中的子键被类型化为NameValueCollection类型集合
if (Request.Cookies["Student"] != null)
{
 NameValueCollection collection = Request.Cookies["Student"].Values;
}

9、修改和删除Cookie
不能直接修改Cookie,更改Cookie的过程设计创建一个具有新值的新Cookie,然后将其发送到浏览器来覆盖客户端的旧版本Cookie,下面的代码示例演示如何更改存储用户对站点的访问次数的 Cookie 的值:
 

代码示例:

int counter;
if (Request.Cookies["counter"] == null)
 counter = 0;
else
{
 counter = int.Parse(Request.Cookies["counter"].Value);
}
counter++;

Response.Cookies["counter"].Value = counter.ToString();
Response.Cookies["counter"].Expires = DateTime.Now.AddDays(1);

10、删除Cookie
删除 Cookie(即从用户的硬盘中物理移除 Cookie)是修改 Cookie 的一种形式。由于 Cookie 在用户的计算机中,因此无法将其直接移除。但是,可以让浏览器来为您删除 Cookie。该技术是创建一个与要删除的 Cookie 同名的新 Cookie,并将该 Cookie 的到期日期设置为早于当前日期的某个日期。当浏览器检查 Cookie 的到期日期时,浏览器便会丢弃这个现已过期的 Cookie:
 

代码示例:
 Response.Cookies["Student"]["FirstName"] = "张";
 Response.Cookies["Student"]["LastName"] = "三";
 Response.Cookies["Student"].Expires = DateTime.Now.AddDays(-10);

11、删除子Cookie
若要删除单个子键,可以操作 Cookie 的 Values 集合,该集合用于保存子键。首先通过从 Cookies 对象中获取 Cookie 来重新创建 Cookie。然后您就可以调用 Values 集合的 Remove 方法,将要删除的子键的名称传递给 Remove 方法。接着,将 Cookie 添加到 Cookies 集合,这样 Cookie 便会以修改后的格式发送回浏览器。

附:
cookie 的定义

  Cookie是一小段文本信息,伴随着用于的请求和页面在Web服务器和浏览器之间传递,并将它存储在用户硬盘上的某个文件夹中。

 Cookie包含每次用户访问站点时Web应用程序都可以读取的信息。以后,如果用户在此请求特定站点中的页面,当用户输入特定URL时,浏览器会在本地硬盘上查找与该URL关联的Cookie。如果该Cookie存在,浏览器将该Cookie与页面请求一起发送到你的站点。Cookie与网站关联,而不是与特定页面关联。

 因此,无论用户请求站点中的哪一个页面,浏览器和服务器都交换Cookie信息。用户访问不同站点时,各个站点都可能会向用户浏览器发送一个Cookie,浏览器会分别存储所有Cookie。

Cookie限制

  大多数浏览器支持最大为4096字节的Cookie,这限制了Cookie的大小,最好用Cookie来存放少量的数据。浏览器还限制站点可以在用户计算机上存储的Cookie的数量。大多数浏览器只允许每个站点存储20个Cookie。如果试图存储更多Cookie,则最旧的Cookie便会被丢弃。有些浏览器还会对他们将接受的来自所有站点的Cookie总数做出绝对限制,通常为300个。


    
 
 

您可能感兴趣的文章:

  • asp.net实例 定义和使用asp:AccessDataSource
  • asp.net输出重写压缩页面文件的实例
  • asp match正则函数使用Matchs实例
  • c#(asp.net)连接excel的实例代码
  • asp.net实例代码 在DataGrid控件中显示数据
  • asp.net 伪静态简单实例
  • asp.net取得所有颜色值实例
  • asp.net实例代码之DataGrid数据编辑
  • asp.net 动态添加多个用户控件(实例代码)
  • asp.net 邮件发送类的简单实例
  • asp.net 动态创建控件的演示实例
  • asp.net操作cookie实例代码
  • asp.net实例代码之添加DataColumn到DataTable控件中
  • asp.net批量删除实例代码教程
  • asp.net 操作cookie实例详解
  • asp.net实例代码之显示数据在不同的控件
  • ASP.net WebAPI 上传图片实例
  • asp.net读取与删除磁盘文件的实例代码
  • asp.net实例代码之datagrid页面索引
  • asp.net实例代码之更新访问数据
  • c#/ASP.NET操作cookie(读写)代码示例
  • Linux操作系统能运行Asp.net的项目吗?
  • asp.net操作cookie的例子
  • 用ASP实现对Oracle数据库的操作
  • c#(asp.net) 时间操作基类(支持长短日期与时间差)
  • 一个ASP.NET的MYSQL的数据库操作类自己封装的
  • asp.net获取客户端参数与操作系统信息
  • asp.net xml文件的读写、添加、修改、删除操作示例
  • asp.net 操作cookie的简单实例
  • ASP.net中获取客户端参数操作系统信息
  • asp.net操作cookie的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • asp.net Cookie用法举例
  • asp 中response.cookies("guestok")=true jsp怎么写?
  • asp.net读取与写入cookie的小例子
  • asp.net中Cookie同Session的关系
  • asp.net cookie的安全性
  • 在asp.net中使用cookie
  • asp.net控制cookie的有效范围
  • asp.net各种cookie代码和解析实例
  • asp.net使用cookie与md5加密实现记住密码功能
  • asp.net检查浏览器是否接受cookie
  • asp.net cookie详解
  • asp.net Cookie的限制
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • asp.net UrlEncode对应asp urlencode的处理方法
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 犹豫中……,到底是选择ASP,还是JSP?
  • asp 是否 可用applet标签?帮忙!!
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • 新人提问:asp+access的程序在linux下怎么改?
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢?
  • asp.net文字水印功能简单代码
  • asp里面可否使用java写的邮件,给30分.
  • asp与Jsp可否在iis中共存的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3