我正在从事ATM大学项目。
当用户在文本框中输入密码时,密码将保存在数据库中。
我想将在文本框中输入的密码与数据库中保存的密码进行比较。我正在从数据库获取密码,但不能输入相等的语句。
代码如下:
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
{
string cus_pin = rdr["pin"].ToString();
string cus_pin_byuser = textBox1.ToString();
if (string.Equals(cus_pin, cus_pin_byuser) == true)
{
cust_main cm = new cust_main();
cm.label1.Text = label7.Text;
cm.label2.Text = label6.Text;
cm.label4.Text = label8.Text;
CodeVer codeVer = new CodeVer();
codeVer.getUserAccountNumber(name);
codeVer.Show();
this.Close();
}
else
{
MessageBox.Show("Invalid Pin");
}
}
答案 0 :(得分:4)
我认为您可能在textBox对象上应用了.ToString()。我想您想使用textBox1.Text。
因此代码将变为:
...
string cus_pin = rdr["pin"].ToString()
string cus_pin_byuser = textBox1.Text;
if (cus_pin == cus_pin_byuser)
...
此外,请注意,将用户密码存储为纯文本确实不安全。请存储其哈希版本。我真的建议阅读OWASP's password storage cheat sheet.