您的位置:首页 > 编程语言 > ASP

ASP.NET Cookie(二)--控制Cookie的范围

2020-03-02 02:41 288 查看

    默认情况下,一个站点的全部Cookie都一起存储在客户端上,而且所有Cookie都会随着对该站点发送的任何请求一起发送到服务器。也就是说,一个站点中的每个页面都能获得该站点的所有Cookie。但是,可以通过两种方式设置Cookie的作用范围:

  1. 将Cookie的范围限制到服务器上的某个文件夹或站点上的某个应用程序;
  2. 将范围设置为某个域。这允许您指定站点中的哪些子域可以访问Cookie。

 

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

    若要将Cookie限制到服务器上的某个文件夹,请按下面的示例设置Cookie的Path属性:

1 HttpCookie appCookie = new HttpCookie("AppCookie");
2 appCookie.Value = "written " + DateTime.Now.ToString();
3 appCookie.Expires = DateTime.Now.AddDays(1);
4 appCookie.Path = "/Application1";
5 Response.Cookies.Add(appCookie);
View Code

    路径可以是站点根目录下的物理路径,也可以是虚拟根目录。所产生的效果是Cookie只能用于Application1文件夹或虚拟根目录中的页面。

    注意:在某些浏览器中,路径区分大小写。您无法控制用户如何在其浏览器中键入URL,但如果应用程序依赖于与特定路径相关的Cookie,请确保您创建的所有超链接中的URL与Path属性值的大小写相匹配。

2.限制Cookie的域范围

    默认情况下,Cookie与创建它所在的域关联(例如,www.mysite.com)。如果站点具有多个域(例如,sales.mysite.com和support. mysite.com),则可以将Cookie与特定的域关联。若要执行此操作,请设置Cookie的 Domain 属性,如此示例所示:

1 Response.Cookies["domain"].Value = DateTime.Now.ToString();
2 Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1);
3 Response.Cookies["domain"].Domain = "support.mysite.com";
View Code

   此时,Cookie 将仅可用于指定的support.mysite.com中的页面。还可以使用Domain属性创建可在多个域间共享的Cookie,如下面的示例所示:

1 Response.Cookies["domain"].Value = DateTime.Now.ToString();
2 Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1);
3 Response.Cookies["domain"].Domain = "mysite.com";
View Code

   此时,Cookie将可用于www.mysite.com域,也可用于sales.mysite.com和support. mysite.com域。

转载于:https://www.cnblogs.com/ayic/p/3338241.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
aijian0876 发布了0 篇原创文章 · 获赞 0 · 访问量 97 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: