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>");
            }

 

转载于:https://www.cnblogs.com/llcdbk/p/5719078.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值