首页 新闻 搜索 专区 学院

如何将session序列化写入cookie呢?

0
悬赏园豆:5 [已解决问题] 解决于 2007-12-10 16:52
session含有一组对象,如何序列化后写入cookie?
问题补充: 看了sdk 只有把对象序列化到stream的代码,如何弄到cookie里面呢?
红尘中迷茫的主页 红尘中迷茫 | 初学一级 | 园豆:60
提问于:2007-12-10 08:29
< >
分享
最佳答案
0
http://topic.csdn.net/u/20071210/10/c5554050-96d5-4dbc-b5bf-b7bbb2fe9294.html
AndyFish | 小虾三级 |园豆:1575 | 2007-12-10 13:54
其他回答(2)
0
最好不要这么干,cookie是有长度限制的. 一定要的话最好只取关键信息,依据情况序列化成字符串形式(xm/json/querystring)然后就直接存进去就行了,其他的cookie对象会帮你搞定. querystring注意key和value都要urlencode. 比较保险的做法还是把数据序列化到服务端,再放置一个id之类的东西把客户端和服务器的序列化对象关联起来
Klesh Wong | 园豆:780 (小虾三级) | 2007-12-10 10:36
0
protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("AA"); string str = this.SerializeObject(dt); Response.Write(str); object o = this.DeserializeObject(str); DataTable dt1 = (DataTable)o; Response.Write("<BR>字段="+dt1.Columns[0].ColumnName); } public string SerializeObject(object o) { System.Runtime.Serialization.IFormatter obj = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); MemoryStream ms = new MemoryStream(); obj.Serialize(ms, o); BinaryReader br = new BinaryReader(ms); ms.Position = 0; byte[] bs = br.ReadBytes((int)ms.Length); ms.Close(); return Convert.ToBase64String(bs); } public object DeserializeObject(string str) { System.Runtime.Serialization.IFormatter obj = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); byte[] bs = Convert.FromBase64String(str); MemoryStream ms = new MemoryStream(); ms.Write(bs,0,bs.Length); ms.Position = 0; object o = obj.Deserialize(ms); ms.Close(); return o; }
JesseZhao | 园豆:305 (菜鸟二级) | 2007-12-10 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册