asp.net COOKIES需要注意的一點

來源:互聯網
上載者:User

由於COOKIES的設定簡單,使用起來也很方便,因此,平時直接讀寫COOKIE的過程中並沒有發現COOKIE的Expires問題。
當從 REQUEST擷取一個COOKIES執行個體後,如果不重新設定Expires的情況下再次將COOKIES發送到用戶端,Expires會變成關閉頁面到期。
舉個例:
先在一個頁面裡發送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,擷取後原封不動的有發送到了瀏覽器,應該不會有什麼變化。
但是實際上會發現一個問題
_currentCookie["test"].Expires 變成了 0001-1-1 關閉頁面後即到期。
通過以上實驗,發現,實際上我們無法擷取COOKIES的Expires屬性,所以,在使用Response.AppendCookies的時候,如果該執行個體沒有重新設定Expires,則Expires會以預設設定(頁面關閉到期)被發送,因此每次發送COOKIE如果你希望有到期時間都必須重新設定。
這個問題是我在封裝COOKIE時遇到的,雖然以前也非常經常的用到COOKIES,但是這次因為想封裝成一個獨立的類,所以在精簡代碼的過程中遇到這樣的問題!
看來,不管多熟悉的東西,它總會有讓人陌生的一面,需多多學習!
當然,這是在.NET2.0 C#中,似乎1.1中是可以擷取REQUEST過來的COOKIE的Expires屬性的。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.