C#中Cookie之存储对象
本文通过代码详细给大家做讲解,具体内容如下: 做项目过程中,用户登陆之后,需要将用户的信息存到Cookie中,但因为Cookie中只能存储字符串,所以想到了先把用户实体序列化成Json串,存储在Cookie中,用到的时候再拿出来反序列化。 道理很简单,网上的例子也很多,但还是遇到一些小困难。下面与大家分享成果。(我的开发环境为VS2012,.net framework版本为4.0,) C#中Json与对象之间的互相转换 下载并引用Newtonsoft.Json.dll 定义一个简单的用户实体: public class UserInfo { /// <summary> /// 用户名称 /// </summary> public string UserName { get; set; } /// <summary> /// 用户密码 /// </summary> public string UserPwd { get; set; } /// <summary> /// 用户级别 /// </summary> public string UserLevel { get; set; } }
/// <summary> /// 将对象序列化成Json /// </summary> /// <param name="obj">需要序列化的对象</param> /// <returns>序列化后的字符串</returns> public static string ObjectToJson(object obj) { return Newtonsoft.Json.JsonConvert.SerializeObject(obj); }
/// <summary> /// 从Json字符串反序列化为对象 /// </summary> /// <param name="jsonString">Json字符串</param> /// <param name="obj">要生成的对象类型</param> /// <returns>反序列化后的对象</returns> public static object JsonToObject(string jsonString) { return Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo>(jsonString); }
将实体序列化为Json并存入Cookie中: //获取UserInfo对象 UserInfo enUser=new UserInfo() { UserName="Danny",UserPwd="123456",UserLevel="admin" } //创建Cookie对象 //将序列化之后的Json串以UTF-8编码,再存入Cookie //将cookie写入到客户端 //设置cookie保存时间 //取出Cookie对象 //从Cookie对象中取出Json串 //Json串反序列化为实体 而且,一般的浏览器支持的Cookie存储的容量为4k(差也就差一两个字节),足够存储一个经过序列化的对象了。 本文到此为止,希望大家喜欢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |