小结一下Cookies

以前不经常用Cookies,

最近做了个站点,用了一些Cookies

把其中要注意的总结一下

1.cookies.Expires 

cookies.Expires 决定cookies是即时型Cookies还是通用型Cookies,如果不指定cookies.Expires默认即使型的

  即时型Cookies是Cookies只在当前打开浏览器作用,重新开浏览器失效,和session的作用域一样

 Response.Cookies["userID"].Expires = System.DateTime.Now.AddMinutes(10);//通用型的

2.Iframe的Cookie

如果不同域名,浏览器会默认把cookies屏蔽了,导致cookies和session都失效了,

ASP.NET的话
通过在代码上加Response.AddHeader("P3P", "CP=CAO PSA OUR")或者在Window服务中将ASP.NET State Service 启动。

3.在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名.但是可以在主域名相同的情况下,二级域名可以共享Cookies

默认情况下,Cookie   与特定的域相关联。例如,如果您的站点是   www.contoso.com,那么当用户向该站点请求页面时,您编写的   Cookie   就被发送到服务器。(有特定路径值的   Cookie   除外,我在上一节刚刚解释过。)   如果您的站点有子域(例如   contoso.com、sales.contoso.com   和   support.contoso.com),就可以把   Cookie   同特定的子域相关联。为此,需要设置   Cookie   的   Domain   属性,如下所示:  
   
  Response.Cookies("domain").Value   =   DateTime.Now.ToString  
  Response.Cookies("domain").Expires   =   DateTime.Now.AddDays(1)  
  Response.Cookies("domain").Domain   =   "support.contoso.com"  
   
  如果按照这种方式设置域,则   Cookie   只能用于指定子域中的页面。  
   
  您也可以利用   Domain   属性来创建可在多个子域中共享的   Cookie。例如,对域进行如下设置:  
   
  Response.Cookies("domain").Value   =   DateTime.Now.ToString  
  Response.Cookies("domain").Expires   =   DateTime.Now.AddDays(1)  
  Response.Cookies("domain").Domain   =   "contoso.com"  
   
  这样,该   Cookie   就可用于主域、sales.contoso.com   和   support.contoso.com。  

原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1458295.html