以前不經常用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。