asp.net COOKIES需要注意的一點
更新時間:2008年11月05日 23:00:32 作者:
COOKIES是很方便使用,也是很廣泛使用的狀態(tài)存儲體
由于COOKIES的設(shè)置簡單,使用起來也很方便,因此,平時直接讀寫COOKIE的過程中并沒有發(fā)現(xiàn)COOKIE的Expires問題。
當從 REQUEST獲取一個COOKIES實例后,如果不重新設(shè)置Expires的情況下再次將COOKIES發(fā)送到客戶端,Expires會變成關(guān)閉頁面過期。
舉個例:
先在一個頁面里發(fā)送COOKIES
HttpCookie _currentCookie;
_currentCookie = new HttpCookie("test");
_currentCookie.Expires = DateTime.Now.AddYears(1);
Response.AppendCookie(_currentCookie);
然后再另一個頁面將它接收
HttpCookie _currentCookie;
_currentCookie = Request.Cookies["test"];
此時,我們可以通過獲取并顯示出Expires過期時間。
Response.Write(_currentCookie.Expires.ToString());
照常理,我們沒有改動這個COOKIES,獲取后原封不動的有發(fā)送到了瀏覽器,應(yīng)該不會有什么變化。
但是實際上會發(fā)現(xiàn)一個問題
_currentCookie["test"].Expires 變成了 0001-1-1 關(guān)閉頁面后即過期。
通過以上實驗,發(fā)現(xiàn),實際上我們無法獲取COOKIES的Expires屬性,所以,在使用Response.AppendCookies的時候,如果該實例沒有重新設(shè)置Expires,則Expires會以默認設(shè)置(頁面關(guān)閉過期)被發(fā)送,因此每次發(fā)送COOKIE如果你希望有過期時間都必須重新設(shè)置。
這個問題是我在封裝COOKIE時遇到的,雖然以前也非常經(jīng)常的用到COOKIES,但是這次因為想封裝成一個獨立的類,所以在精簡代碼的過程中遇到這樣的問題!
看來,不管多熟悉的東西,它總會有讓人陌生的一面,需多多學習!
當然,這是在.NET2.0 C#中,似乎1.1中是可以獲取REQUEST過來的COOKIE的Expires屬性的。
當從 REQUEST獲取一個COOKIES實例后,如果不重新設(shè)置Expires的情況下再次將COOKIES發(fā)送到客戶端,Expires會變成關(guān)閉頁面過期。
舉個例:
先在一個頁面里發(fā)送COOKIES
HttpCookie _currentCookie;
_currentCookie = new HttpCookie("test");
_currentCookie.Expires = DateTime.Now.AddYears(1);
Response.AppendCookie(_currentCookie);
然后再另一個頁面將它接收
HttpCookie _currentCookie;
_currentCookie = Request.Cookies["test"];
此時,我們可以通過獲取并顯示出Expires過期時間。
Response.Write(_currentCookie.Expires.ToString());
照常理,我們沒有改動這個COOKIES,獲取后原封不動的有發(fā)送到了瀏覽器,應(yīng)該不會有什么變化。
但是實際上會發(fā)現(xiàn)一個問題
_currentCookie["test"].Expires 變成了 0001-1-1 關(guān)閉頁面后即過期。
通過以上實驗,發(fā)現(xiàn),實際上我們無法獲取COOKIES的Expires屬性,所以,在使用Response.AppendCookies的時候,如果該實例沒有重新設(shè)置Expires,則Expires會以默認設(shè)置(頁面關(guān)閉過期)被發(fā)送,因此每次發(fā)送COOKIE如果你希望有過期時間都必須重新設(shè)置。
這個問題是我在封裝COOKIE時遇到的,雖然以前也非常經(jīng)常的用到COOKIES,但是這次因為想封裝成一個獨立的類,所以在精簡代碼的過程中遇到這樣的問題!
看來,不管多熟悉的東西,它總會有讓人陌生的一面,需多多學習!
當然,這是在.NET2.0 C#中,似乎1.1中是可以獲取REQUEST過來的COOKIE的Expires屬性的。
您可能感興趣的文章:
- asp.net下cookies的丟失和中文亂碼
- asp.net清空Cookie的兩種方法
- asp.net cookie的操作,寫入、讀取與操作
- asp.net Cookie跨域、虛擬目錄等設(shè)置方法
- ASP.NET Cookie 操作實現(xiàn)
- asp.net Cookie操作類
- asp.net下cookies操作完美代碼
- asp.net通過js實現(xiàn)Cookie創(chuàng)建以及清除Cookie數(shù)組的代碼
- asp.net(C#)跨域及跨域?qū)慍ookie問題
- asp.net中的cookie使用介紹
- asp.net關(guān)于Cookie跨域(域名)的問題
- Asp.net內(nèi)置對象之Cookies(簡介/屬性方法/基本操作及實例)
- asp.net Cookie值中文亂碼問題解決方法
- asp.net中使用cookie與md5加密實現(xiàn)記住密碼功能的實現(xiàn)代碼
- ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因
- asp.net利用cookie保存用戶密碼實現(xiàn)自動登錄的方法
- ASP.NET中Cookie的使用方法
相關(guān)文章
看到本質(zhì)而不是現(xiàn)象--解決ASP.NET CS0016的問題
看到本質(zhì)而不是現(xiàn)象--解決ASP.NET CS0016的問題...2007-01-01
asp.net 使用js分頁實現(xiàn)異步加載數(shù)據(jù)
這篇文章主要介紹了asp.net使用js分頁實現(xiàn)異步加載數(shù)據(jù),需要的朋友可以參考下2014-04-04
asp.net實現(xiàn)從Txt文件讀取數(shù)據(jù)到數(shù)據(jù)視圖的方法
這篇文章主要介紹了asp.net實現(xiàn)從Txt文件讀取數(shù)據(jù)到數(shù)據(jù)視圖的方法,涉及asp.net針對文本文件的遍歷操作與DataView的寫入操作相關(guān)技巧,需要的朋友可以參考下2015-12-12

