Cookie 的建立及讀取

2021-05-27 15:32:16 字數 4205 閱讀 9233

(方法一)
response.cookies["username"].value = "patrick";
response.cookies["username"].expires = datetime.now.adddays(1);
(方法二)
httpcookie acookie = new httpcookie("lastvisit");
acookie.value = datetime.now.tostring();
acookie.expires = datetime.now.adddays(1);
response.cookies.add(acookie);
(方法一)
response.cookies["userinfo"]["username"] = "patrick";
response.cookies["userinfo"]["lastvisit"] = datetime.now.tostring();
response.cookies["userinfo"].expires = datetime.now.adddays(1);
(方法二)
httpcookie acookie = new httpcookie("userinfo");
acookie.values["username"] = "patrick";
acookie.values["lastvisit"] = datetime.now.tostring();
acookie.expires = datetime.now.adddays(1);
response.cookies.add(acookie);
if(request.cookies["username"] != null)
label1.text = server.htmlencode(request.cookies["username"].value);
或者
if(request.cookies["username"] != null)
在嘗試獲取 cookie 的值之前,應確保該 cookie 存在;如果該 cookie 不存在,將會收到nullreferenceexception 異常。還請注意在頁面中顯示 cookie 的內容前,先呼叫 htmlencode 方法對 cookie 的內容進行編碼。這樣可以確保惡意使用者沒有向 cookie 中新增可執行指令碼。

讀取 cookie 中子鍵值

if(request.cookies["userinfo"] != null)
system.text.stringbuilder output = new system.text.stringbuilder();
httpcookie acookie;
for(int i=0; i修改

不能直接修改 cookie。更改 cookie 的過程涉及建立乙個具有新值的新 cookie,然後將其傳送到瀏覽器來覆蓋客戶端上的舊版本 cookie。下面的**示例演示如何更改儲存使用者對站點的訪問次數的 cookie 的值:

int counter;

if (request.cookies["counter"] == null)
counter = 0;
else
counter++;
response.cookies["counter"].value = counter.tostring();
response.cookies["counter"].expires = datetime.now.adddays(1);
刪除 cookie(即從使用者的硬碟中物理移除 cookie)是修改 cookie 的一種形式。由於 cookie 在使用者的計算機中,因此無法將其直接移除。但是,可以讓瀏覽器來為您刪除 cookie。該技術是建立乙個與要刪除的 cookie 同名的新 cookie,並將該 cookie 的到期日期設定為早於當前日期的某個日期。當瀏覽器檢查 cookie 的到期日期時,瀏覽器便會丟棄這個現已過期的 cookie。下面的**示例演示刪除應用程式中所有可用 cookie 的一種方法:

httpcookie acookie;
string cookiename;
int limit = request.cookies.count;
for (int i=0; i修改子鍵

response.cookies["userinfo"]["lastvisit"] = datetime.now.tostring();

response.cookies["userinfo"].expires = datetime.now.adddays(1);
刪除子鍵

string subkeyname;
subkeyname = "username";
httpcookie acookie = request.cookies["userinfo"];
acookie.values.remove(subkeyname);
acookie.expires = datetime.now.adddays(1);
response.cookies.add(acookie);
確定 cookie 是否被接受的一種方法是嘗試編寫乙個 cookie,然後再嘗試讀取該 cookie。如果無法讀取您編寫的 cookie,則可以假定瀏覽器不接受 cookie。

下 面的**示例演示如何測試瀏覽器是否接受 cookie。此示例由兩個頁面組成。第乙個頁面寫出 cookie,然後將瀏覽器重定向到第二個頁面。第二個頁面嘗試讀取該 cookie。然後再將瀏覽器重定向回第乙個頁面,並將帶有測試結果的查詢字串變數新增到 url。

第乙個頁面的**如下所示:(寫入cookie頁面)

protected void page_load(object sender, eventargs e)
else
}
}
第二個頁面(檢測頁面)

protected void page_load(object sender, eventargs e)
response.redirect(redirect + "?acceptscookies=" + acceptscookies,
true);
}
若要將 cookie 限制到伺服器上的某個資料夾,請按下面的示例設定 cookie 的 path 屬性:
預設情況下,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 將僅可用於指定的子域中的頁面。

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 域。

fsockopen讀取 傳送cookie及注意事項

1 首先分析一下帶cookie的http收發協議的格式。伺服器發cookie給客戶端時 可以看到http頭有set cookie這個命令,當瀏覽器分析到這個命令時,就會在本地電腦上建立乙個cookie檔案並把這兩個引數寫入檔案。b 這裡需要注意的是 http協議裡,http頭和資料之間的間隔是乙個空...

檔案建立及讀取的方法

以前建立用 string filepath if system.io.file.exists filepath 建立檔案 system.io.file.create filepath system.io.streamwriter sw new system.io.streamwriter filep...

js儲存cookie與讀取cookie

設定cookie param name param value function setcookie name,value path引數巨坑!一般設定之後頁面都可以訪問cookie,否則只能在乙個頁面。功能 獲取cookies函式 引數 cookie name名字 function getcooki...