在Login with Session中记住我

时间:2012-06-28 11:47:46

标签: c# asp.net session

我试过用会话记住我,但我不能成功。首先是可能吗?

在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();
    }

但它不起作用。

4 个答案:

答案 0 :(得分:11)

您不能将Session用于此目的。您必须使用Cookie来保存Remember Me状态。

答案 1 :(得分:3)

“记住我”功能是通过使用持久性cookie实现的。

您不能使用Session对象,因为它会在用户不活动一段时间后自动删除。

安全提示从不以纯文本格式存储用户密码!

答案 2 :(得分:0)

顺便说一下:创建一个包含两个属性emailpass的用户类会更好,并将其存储在一个会话元素中:

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.