为了账号安全,请及时绑定邮箱和手机立即绑定

C# 可以每天更改一次密码

C# 可以每天更改一次密码

C#
MYYA 2021-07-06 13:49:52
我必须写一个代码来更改密码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;   }}通过这种方式,用户可以随时更改密码,但我希望用户每天只能更改一次密码。这个条件怎么写?
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您需要向用户表中添加一个新列,在其中存储一个 DateTime 值,其中最后一个 DateTime 更改密码。


您可以使用此函数获取实际的 DateTime:


DateTime.Now

现在,如果您想检查自上次更改密码以来是否已过去 24 小时,请执行以下操作:


private bool CanChangePassword()

{

    DateTime dt = //value from database (last password change);


    DateTime now = DateTime.Now;


    if (dt == DateTime.MinValue || now > dt.AddHours(24))

    {

        return true;

    }

    return false;

}


查看完整回答
反对 回复 2021-07-10
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

用于DateTime changedpassworddate = DateTime.now();获取当前日期并将其放入变量中。


将此变量存储在您的数据库中。


下次用户输入密码时,您可以从数据库中获取 DateTime,将其与当前 DateTime 进行比较,如下所示:


if(DateTime.now() < changedpassworddate.AddDays(1))

{your abort code}

else

{your continue code}

使用 add days 方法意味着用户每 24 小时只能更改一次密码。所以在 23:59 更改它然后在 0:01 更改它是行不通的。


查看完整回答
反对 回复 2021-07-10
  • 2 回答
  • 0 关注
  • 273 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信