首先,我们来添加一个“记住我”的功能。当用户登录的时候,如果选择了“Remember Me”,那么就同时把用户名密码等信息保存到用户的cookie中,用户访问时,先检测cookie,如果cookie中有保存的信息,则验证此信息,如果验证通过,则建立相应的session,否则导向Login页面。
先在SysUser中建立序列化和反序列化的两个函数:
public static string SerializeToString(string name, string password)
{
var s = string.Format("{0}\n{1}", name, password);
var bs = Encoding.UTF8.GetBytes(s);
return Base32StringCoding.Decode(bs);
}
public static SysUser DeserializeFromString(string source)
{
var bs = Base32StringCoding.Encode(source);
var s = Encoding.UTF8.GetString(bs);
var ss = s.Split('\n');
if (ss.Length == 2)
{
return GetUserForLogin(ss[0], ss[1]);
}
return null;
}
{
var s = string.Format("{0}\n{1}", name, password);
var bs = Encoding.UTF8.GetBytes(s);
return Base32StringCoding.Decode(bs);
}
public static SysUser DeserializeFromString(string source)
{
var bs = Base32StringCoding.Encode(source);
var s = Encoding.UTF8.GetString(bs);
var ss = s.Split('\n');
if (ss.Length == 2)
{
return GetUserForLogin(ss[0], ss[1]);
}
return null;
}