【发布时间】:2018-11-07 05:11:46
【问题描述】:
我必须编写代码来更改密码
if (txtNewPassword.Text == txtConfirmPassword.Text)
{
mSQL = "SELECT * FROM User WHERE userName = '" + txtUserName.Text + "' AND password = '" + txtPassword.Text + "'";
mDT_Save = mDBHelper.GetTable(mSQL);
if (mDT_Save.Rows.Count > 0)
{
for (int i = 0; i < mDT_Save.Rows.Count; i++)
{
mSQL = "UPDATE User SET password = '" + txtConfirmPassword.Text + "' WHERE userName = '" + Convert.ToString(mDT_Save.Rows[i]["userName"]) + "'";
mDBHelper.ExecuteSQLNonQuery(mSQL);
}
MessageBox.Show("Password Changed Successfully");
txtPassword.Text = txtConfirmPassword.Text;
return;
}
else
{
MessageBox.Show("User Not Found");
return;
}
}
通过这种方式,用户可以随时更改密码,但我希望用户每天只能更改一次密码。这个条件怎么写?
【问题讨论】:
-
您可以将上次更改的密码
DateTime存储在数据库中,并在更新密码之前进行检查。还要考虑在存储密码之前对其进行哈希处理。您永远不应该以明文形式存储密码! -
您可以将用户上次更改密码的时间保存在数据库中,并使用该值来验证用户是否可以更改密码。
-
尝试新密码
'; --,然后看看使用SqlParameter和参数化查询。预期结果:数据库中所有用户的密码都设置为空字符串。