cookie和session是否可以保存對象


session看了一下,是可以保存對象的。語法很普通,但是cookie的話本身是只能保存string類型的信息的,這就需要先序列化,然后接收的頁面反序列化后形成對象調用,為了防止亂碼,需要在數據傳輸的時候加入編碼格式,涉及到的DLL:Newtonsoft.Json.dll,一個幫助數據序列化成JSON 的組件,DEMO如下:

 Student sessionStu = new Student();
            sessionStu.sId = 001;
            sessionStu.sName = "水晶之戀";
            Session["obj"] = sessionStu;

            Student cookieStu = new Student();
            cookieStu.sId = 002;
            cookieStu.sName = "螞蟻上樹";
            var res = JsonConvert.SerializeObject(cookieStu);

            HttpCookie cookie = new HttpCookie("cobj");
            cookie.Value = HttpUtility.UrlEncode(res,Encoding.GetEncoding("UTF-8"));
            Response.Cookies.Add(cookie);

            Response.Redirect("SessionRes.aspx");

接收頁面:

            if(!IsPostBack)
            {
                Student resStu = Session["obj"] as Student;
                Response.Write("session:</br>");
                Response.Write(resStu.sId.ToString() + "</br>");
                Response.Write(resStu.sName.ToString() + "</br>");


                var res = HttpUtility.UrlDecode(Request.Cookies["cobj"].Value, Encoding.GetEncoding("UTF-8"));
                var stu = JsonConvert.DeserializeObject<Student>(res);
                
                Student resStuCookie = stu;
                Response.Write("cookie:</br>");
                Response.Write(resStuCookie.sId.ToString() + "</br>");
                Response.Write(resStuCookie.sName.ToString() + "</br>");
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM