繁体   English   中英

在Login with Session中记住我

[英]Remember me in Login with Session

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

在CheckedChanged方法中

     if (CheckBox1.Checked)
    {
        Session["email"] = TextBox1.Text;
        Session["pass"] = TextBox2.Text;

    }

在pageload方法中

     if (Session["email"].ToString() !=null && Session["pass"].ToString() !=null)
    {
       TextBox1.Text = Session["email"].ToString();
        TextBox2.Text = Session["pass"].ToString();
    }

但它不起作用。

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

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

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

安全说明切勿以纯文本格式存储用户密码!

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

User myUser = new User();
myUser.Email = "test@test.com";
myUser.Pass = "123456";

session["user"] = myUser;

并且您将记住我存储在cookie中,其中一些凭据高度加密或盐渍哈希,因此当您的用户再次访问时,您将名称和盐渍哈希与您在数据库中的信息相匹配

像这样改变。 当你检查价值时。 当null对象存在时,你无法访问ToString()方法。

if (!string.IsNullOrEmpty(Session["email"]) && string.IsNullOrEmpty(Session["pass"])) )
 // then do with session objects. 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM