【发布时间】:2015-09-01 18:25:26
【问题描述】:
我已经编写了一个记住我的复选框,如果选中该复选框,则将用户名和密码存储在 cookie 中。我的问题是,如果他们检查它然后重新启动应用程序,用户名和密码会自动填充,但复选框不会保持选中状态。
我还没有想出办法来做到这一点......
我将在下面发布我的代码:
if (!IsPostBack)
{
if (Request.Cookies["UserName"] != null && Request.Cookies["Password"] != null)
{
userNameTxtBox.Text = Request.Cookies["UserName"].Value;
passwordTxtBox.Attributes["value"] = Request.Cookies["Password"].Value;
}
}
if (chkBoxRememberMe.Checked)
{
Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(30);
Response.Cookies["Password"].Expires = DateTime.Now.AddDays(30);
}
else
{
Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(-1);
Response.Cookies["Password"].Expires = DateTime.Now.AddDays(-1);
}
Response.Cookies["UserName"].Value = myUserName
string passwordEncrypted = Crypto.Sha256(myPassword);
Response.Cookies["Password"].Value = passwordEncrypted;
上面的代码可以正常工作。但是我有一个记住我的复选框,如果它被选中,我想将它保存到 cookie 中并保持选中状态,直到用户取消选中它....
有什么想法吗?
【问题讨论】:
-
你做错了。您不应将密码以纯文本形式存储在 cookie 中。这非常容易受到攻击。您的应用程序应该在他们进入页面时(通过存储在 cookie 中的某种加密令牌)识别该人并自动登录。