教程集 www.jiaochengji.com
教程集 >  脚本编程  >  Asp.net  >  正文 asp.net控制cookie的有效范围

asp.net控制cookie的有效范围

发布时间:2015-09-27   编辑:jiaochengji.com
asp.net控制cookie有效范围

  默认情况下,一个站点的全部 Cookie都保存在客户机上,所有这些 Cookie 都会随着对该站点发送的请求一起发送到服务器,站点的每个页面都能得到该站点的所有 Cookie。实际应用中,可能希望 Cookie 更具有针对性,此时可以通过两种方法设置 Cookie 的有效范围:

  把 Cookie 的有效范围限制在服务器上的一个文件夹中,实际上就将 Cookie 限制到站点上的某个应用程序。

  把有效范围设置为某个域,从而允许您指定域中的哪些子域可以访问 Cookie。

  将 Cookie 限制到某个文件夹或应用程序

要将 Cookie 限制到服务器上的某个文件夹,请按如下方法设置 Cookie 的 Path 属性:
 

复制代码 代码如下:
   Dim appCookie As New HttpCookie("AppCookie")
   appCookie.Value = "written " & Now.ToString
appCookie.Expires = Now.AddDays(1)
appCookie.Path = "/Application1"
Response.Cookies.Add(appCookie)

  当然,您也可以通过直接设置 Response.Cookies 来编写 Cookie,如前文所述。

  路径可以是站点根目录下的物理路径,也可以是虚拟根目录。这样一来,Cookie 就只能用于 Application1 文件夹或虚拟根目录中的页面。例如,如果您的站点名为 www.jbxue.com,则前面示例中生成的 Cookie 就只能用于路径为 http://www.jbxue.com/Application1/ 的页面以及该文件夹下的所有页面,而不适用于其他应用程序中的页面,如 http://www.jbxue.com/Application2/ 或 http://www.jbxue.com/下的页面。

  提示:通过对 Internet Explorer 和 Mozilla 浏览器进行测试发现,此处使用的路径是区分大小写的。一般而言,Windows 服务器上的 URL 不区分大小写,但这种情况例外。您无法控制用户如何在浏览器中输入 URL,但是,如果您的应用程序依赖于与特定路径相关的 Cookie,则请确保您所创建的所有超链接中的 URL 与 Path 属性值的大小写相匹配。

    将 Cookie 的有效范围限制到域

  默认情况下,Cookie 与特定的域相关联。例如,如果您的站点是 www.jbxue.com,那么当用户向该站点请求页面时,您编写的 Cookie 就被发送到服务器。(有特定路径值的 Cookie 除外,我在上一节刚刚解释过。) 如果您的站点有子域(例如 jbxue.com、sales.jbxue.com 和 support.jbxue.com),就可以把 Cookie 同特定的子域相关联。为此,需要设置 Cookie 的 Domain 属性,如下所示:
 

复制代码 代码如下:
Response.Cookies("domain").Value = DateTime.Now.ToString
Response.Cookies("domain").Expires = DateTime.Now.AddDays(1)
Response.Cookies("domain").Domain = "support.jbxue.com"

  如果按照这种方式设置域,则 Cookie 只能用于指定子域中的页面。

 也可以利用 Domain 属性来创建可在多个子域中共享的 Cookie。例如,对域进行如下设置:
 

复制代码 代码如下:
    Response.Cookies("domain").Value = DateTime.Now.ToString
    Response.Cookies("domain").Expires = DateTime.Now.AddDays(1)
    Response.Cookies("domain").Domain = "jbxue.com"

  这样,该 Cookie 就可用于主域、sales.jbxue.com 和 support.jbxue.com 

您可能感兴趣的文章:
asp.net控制cookie的有效范围
asp.net cookie操作实例学习
.net中Cookie用法示例详解
asp.net 页面传值的方法汇总
在asp.net中使用cookie
asp.net操作cookie详解
asp.net用cookie保存用户密码自动登录
C#操作cookie的例子(读取、删除、写入)
servlet与jsp基础教程(9)-处理Cookie
asp.net中的application, cache对比

[关闭]
~ ~