Cookie是存在硬盤上,IE存cookie的地方和Firefox存cookie的地方不同。不一樣的操做系統也可能存cookie的地方不同。html
不一樣的瀏覽器會在各自的獨立空間存放Cookie, 互不干涉以個人windows7, IE8爲例, cookie存在這:c#
C:\Users\xiaoj\AppData\Local\Microsoft\Windows\Temporary Internet Fileswindows
注意: 緩存文件和cookie文件,是存在一塊兒的, 都在這個目錄下。瀏覽器
你也能夠這樣找, 打開IE,點擊Tools->Internet Options->General Tab下的->Browsing history下的Setting按鈕,彈出的對話框中點擊View files。不一樣的網站會有不一樣的cookie文件。緩存
在Asp.net中,讀寫Cookie是經過使用HttpCookie類來完成的,它的定義以下:安全
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public
sealed
class
HttpCookie
{
// 獲取或設置將此 Cookie 與其關聯的域。默認值爲當前域。
public
string
Domain {
get
;
set
; }
// 獲取或設置此 Cookie 的過時日期和時間(在客戶端)。
public
DateTime Expires {
get
;
set
; }
// 獲取一個值,經過該值指示 Cookie 是否具備子鍵。
public
bool
HasKeys {
get
; }
// 獲取或設置一個值,該值指定 Cookie 是否可經過客戶端腳本訪問。
// 若是 Cookie 具備 HttpOnly 屬性且不能經過客戶端腳本訪問,則爲 true;不然爲 false。默認爲 false。
public
bool
HttpOnly {
get
;
set
; }
// 獲取或設置 Cookie 的名稱。
public
string
Name {
get
;
set
; }
// 獲取或設置要與當前 Cookie 一塊兒傳輸的虛擬路徑。默認值爲當前請求的路徑。
public
string
Path {
get
;
set
; }
// 獲取或設置一個值,該值指示是否使用安全套接字層 (SSL)(即僅經過 HTTPS)傳輸 Cookie。
public
bool
Secure {
get
;
set
; }
// 獲取或設置單個 Cookie 值。默認值爲空引用。
public
string
Value {
get
;
set
; }
// 獲取單個 Cookie 對象所包含的鍵值對的集合。
public
NameValueCollection Values {
get
; }
// 獲取 System.Web.HttpCookie.Values 屬性的快捷方式。
public
string
this
[
string
key] {
get
;
set
; }
}
|
Cookie寫入瀏覽器的過程:服務器
咱們可使用以下代碼在Asp.net項目中寫一個Cookie 併發送到客戶端的瀏覽器(爲了簡單我沒有設置其它屬性)。cookie
1
2
|
HttpCookie cookie =
new
HttpCookie(
"MyCookieName"
,
"string value"
);
Response.Cookies.Add(cookie);
|
Asp.net獲取Cookie的過程:併發
咱們可使用以下代碼在Asp.net項目中讀取一個Cookie
網站
1
2
3
4
5
|
HttpCookie cookie = Request.Cookies[
"MyCookieName"
];
if
( cookie !=
null
)
labCookie1.Text = cookie.Value;
else
labCookie1.Text =
"未定義"
;
|
Cookie是放在請求頭中,發送到服務端的。若是你一直刷新頁面,就能發現, 每次HTTP請求,Cookie都會被髮送。固然了,瀏覽器也不是發送它所接收到的全部Cookie,它會檢查當前要請求的域名以及目錄, 只要這二項目與Cookie對應的Domain和Path匹配,纔會發送。對於Domain則是按照尾部匹配的原則進行的。因此,我在訪問 www.09me.com 時,瀏覽器並不會將我在瀏覽 www.169it.com 所接收到的 Cookie 發出去。
刪除Cookie:
其實就是在寫Cookie時,設置Expires爲一個【早於如今時間的時間】。也就是:設置此Cookie已通過期, 瀏覽器接收到這個Cookie時,便會刪除它們。
1
2
3
|
HttpCookie cookie =
new
HttpCookie(
"MyCookieName"
,
null
);
cookie.Expires =
new
DateTime(1900, 1, 1);
Response.Cookies.Add(cookie);
|
瀏覽器對於Web服務器應答包頭中Cookie的操做步驟
1. 從Web服務器的應答包頭中提取全部的cookie。
2. 解析這些cookie的組成部分(名稱,值,路徑等等)。
3. 斷定主機是否容許設置這些cookie。容許的話,則把這些Cookie存儲在本地。
瀏覽器對Web服務器請求包頭中全部的Cookie進行篩選的步驟:
1. 根據請求的URL和本地存儲cookie的屬性,判斷那些Cookie能被髮送給Web服務器。
2. 對於多個cookie,斷定發送的順序。
3. 把須要發送的Cookie加入到請求HTTP包頭中一塊兒發送。
轉載請註明:文章轉載自:[169IT-最新最全的IT資訊]
本文標題:c#/ASP.NET操做cookie(讀寫)代碼示例