我试过用会话记住我,但我不能成功。首先是可能吗?
在CheckedChanged方法
中 if (CheckBox1.Checked)
{
Session["email"] = TextBox1.Text;
Session["pass"] = TextBox2.Text;
}
页面加载方法
if (Session["email"].ToString() !=null && Session["pass"].ToString() !=null)
{
TextBox1.Text = Session["email"].ToString();
TextBox2.Text = Session["pass"].ToString();
}
但它不起作用。
答案 0 :(得分:11)
您不能将Session
用于此目的。您必须使用Cookie
来保存Remember Me
状态。
答案 1 :(得分:3)
“记住我”功能是通过使用持久性cookie实现的。
您不能使用Session对象,因为它会在用户不活动一段时间后自动删除。
安全提示:从不以纯文本格式存储用户密码!
答案 2 :(得分:0)
顺便说一下:创建一个包含两个属性email
和pass
的用户类会更好,并将其存储在一个会话元素中:
User myUser = new User();
myUser.Email = "test@test.com";
myUser.Pass = "123456";
session["user"] = myUser;
并且您将记住我存储在Cookie中,其中包含一些高度加密或盐渍哈希的凭据,因此当您的用户再次访问时,您会将名称和盐渍哈希与数据库中的信息相匹配
答案 3 :(得分:-1)
这样改变。当你检查价值时。当null对象存在时,你无法访问ToString()方法。
if (!string.IsNullOrEmpty(Session["email"]) && string.IsNullOrEmpty(Session["pass"])) )
// then do with session objects.