asp.net COOKIES需要注意的一點(diǎn)
來源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 22:44:52
asp.net COOKIES需要注意的一點(diǎn)
asp.net COOKIES需要注意的一點(diǎn):由于COOKIES的設(shè)置簡(jiǎn)單,使用起來也很方便,因此,平時(shí)直接讀寫COOKIE的過程中并沒有發(fā)現(xiàn)COOKIE的Expires問題。 當(dāng)從 REQUEST獲取一個(gè)COOKIES實(shí)例后,如果不重新設(shè)置Expires的情況下再次將COOKIES發(fā)送到客戶端,Expires會(huì)變成關(guān)閉頁面過期。 舉個(gè)例:
導(dǎo)讀asp.net COOKIES需要注意的一點(diǎn):由于COOKIES的設(shè)置簡(jiǎn)單,使用起來也很方便,因此,平時(shí)直接讀寫COOKIE的過程中并沒有發(fā)現(xiàn)COOKIE的Expires問題。 當(dāng)從 REQUEST獲取一個(gè)COOKIES實(shí)例后,如果不重新設(shè)置Expires的情況下再次將COOKIES發(fā)送到客戶端,Expires會(huì)變成關(guān)閉頁面過期。 舉個(gè)例:

由于COOKIES的設(shè)置簡(jiǎn)單,使用起來也很方便,因此,平時(shí)直接讀寫COOKIE的過程中并沒有發(fā)現(xiàn)COOKIE的Expires問題。
當(dāng)從 REQUEST獲取一個(gè)COOKIES實(shí)例后,如果不重新設(shè)置Expires的情況下再次將COOKIES發(fā)送到客戶端,Expires會(huì)變成關(guān)閉頁面過期。
舉個(gè)例:
先在一個(gè)頁面里發(fā)送COOKIES
HttpCookie _currentCookie;
_currentCookie = new HttpCookie("test");
_currentCookie.Expires = DateTime.Now.AddYears(1);
Response.AppendCookie(_currentCookie);
然后再另一個(gè)頁面將它接收
HttpCookie _currentCookie;
_currentCookie = Request.Cookies["test"];
此時(shí),我們可以通過獲取并顯示出Expires過期時(shí)間。
Response.Write(_currentCookie.Expires.ToString());
照常理,我們沒有改動(dòng)這個(gè)COOKIES,獲取后原封不動(dòng)的有發(fā)送到了瀏覽器,應(yīng)該不會(huì)有什么變化。
但是實(shí)際上會(huì)發(fā)現(xiàn)一個(gè)問題
_currentCookie["test"].Expires 變成了 0001-1-1 關(guān)閉頁面后即過期。
通過以上實(shí)驗(yàn),發(fā)現(xiàn),實(shí)際上我們無法獲取COOKIES的Expires屬性,所以,在使用Response.AppendCookies的時(shí)候,如果該實(shí)例沒有重新設(shè)置Expires,則Expires會(huì)以默認(rèn)設(shè)置(頁面關(guān)閉過期)被發(fā)送,因此每次發(fā)送COOKIE如果你希望有過期時(shí)間都必須重新設(shè)置。
這個(gè)問題是我在封裝COOKIE時(shí)遇到的,雖然以前也非常經(jīng)常的用到COOKIES,但是這次因?yàn)橄敕庋b成一個(gè)獨(dú)立的類,所以在精簡(jiǎn)代碼的過程中遇到這樣的問題!
看來,不管多熟悉的東西,它總會(huì)有讓人陌生的一面,需多多學(xué)習(xí)!
當(dāng)然,這是在.NET2.0 C#中,似乎1.1中是可以獲取REQUEST過來的COOKIE的Expires屬性的。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
asp.net COOKIES需要注意的一點(diǎn)
asp.net COOKIES需要注意的一點(diǎn):由于COOKIES的設(shè)置簡(jiǎn)單,使用起來也很方便,因此,平時(shí)直接讀寫COOKIE的過程中并沒有發(fā)現(xiàn)COOKIE的Expires問題。 當(dāng)從 REQUEST獲取一個(gè)COOKIES實(shí)例后,如果不重新設(shè)置Expires的情況下再次將COOKIES發(fā)送到客戶端,Expires會(huì)變成關(guān)閉頁面過期。 舉個(gè)例: