簡體   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