Cookie保存对象
我用序列化来保存的起,但是我觉得太复杂了这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public partial class CookieAddObject_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
//保存Cookie
protected void Button1_Click(object sender, EventArgs e)
{
byte[] b;
string loignId = this.txtLoginId.Text.Trim();
string loignPwd = this.txtPwd.Text.Trim();
User u = new User();
u.LoginId = this.txtLoginId.Text;
u.LoginPwd = this.txtPwd.Text;
SerUser(u);
FileStream fs = new FileStream(@"E:\ASP.Net\Test\Test1\CookieAddObject\user.txt", FileMode.Open);
b = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
b = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
Response.Cookies["user"].Value = Convert.ToBase64String(b);
}
private void SerUser(User u)
{
FileStream fs = new FileStream(@"E:\ASP.Net\Test\Test1\CookieAddObject\user.txt", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, u);
fs.Close();
}
//读取Cookie
protected void Button2_Click(object sender, EventArgs e)
{
byte[] bb = Convert.FromBase64String(Request.Cookies["user"].Value);
MemoryStream ms = new MemoryStream(bb);
BinaryFormatter bf = new BinaryFormatter();
User u = (User)bf.Deserialize(ms);
this.Label3.Text = u.LoginId;
this.Label4.Text = u.LoginPwd;
}
}