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

    默认情况下,一个站点的全部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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值