添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 用戶端:View state 、Control state、Hidden fields、Cookies、QueryString
  • 伺服器端:Application state、Session state、Profile Properties
  • 之前講過 ViewState ,今天則是要說網頁中很常用也很重要的的 Cookie Session

    Cookie是什麼???

    不文謅謅的解釋了!

    簡單來說就是 瀏覽器 提供每個網站各別存取的小資訊(網站之間不共用,瀏覽器之間不共用!)

    透過Response,Request操作Cookie

    新增設置:

    HttpCookie hc = new HttpCookie("userInfo");
    hc.Value = "Test";
    hc.Expires = System.DateTime.Now.AddDays(7);//設定在瀏覽器的有效期限
    Response.Cookies.Add(hc);
    

    讀取使用:

    if(Request.Cookies["userInfo"]!= null)
    var info = Request.Cookies["userInfo"].Value;
    

    所有的Cookie都會伴隨對網站的任何要求傳送至伺服器,就是說站內所有網頁都會取得該網站的所有Cookie!!!!

    **變更 Cookie 的到期日 (取自:MSDN,**曾經因為不懂它,就一直做紅色部分的傻事)

    瀏覽器負責管理 Cookie,而 Cookie 的到期時間和日期可以協助瀏覽器管理 Cookie 的儲存。 因此,雖然您可以讀取 Cookie 的名稱和值,但是無法讀取 Cookie 的到期日期和時間。 當瀏覽器將 Cookie 資訊傳送至伺服器時,瀏覽器並不會包含到期資訊 (Cookie 的 Expires 屬性永遠會傳回為零的日期時間值)。如果您擔心 Cookie 的到期日,就必須重設它。

    Session是什麼???

    既然有用戶端的Cookie,反之,一定有存在伺服端的囉!!

    透過SessionID來讓瀏覽器與伺服器能夠溝通知道誰是誰(多個網站Client才可以辨認),

    透過獨特的演算法隨機產生SessionID來避免重複或受到竊取,

    會放在URL或Cookie中(依照瀏覽器設置)在伺服器和瀏覽器之間傳遞,

    (同一個使用者網頁之間可以透過Session傳遞資料)

    直接使用操作Session物件:

    Session["test"] ="直接使用"
    if (Session["test"] != null)
        var str = "超簡單" + Session["test"];
    

    預設20~30分鐘沒有重新連線就會失效(依照IIS設置)

    也可以手動要求刪除值(內容)或整個物件:

    Session.Clear()跟Session.RemoveAll()

    //清除所有內容,Session.Count可以得到0

    Session.Abandon()

    //則還會清除內容且結束工作狀態,網站運行中所以又產生新的工作狀態

    (這部分有錯請指證)

    雖然Session操作很簡單,但是其實還有許多功能可以調整如工作狀態或者想延長時間等等進階設定!

    看似簡單卻又不簡單(當然先學會基本....但要知道背後的恐怖)