【发布时间】:2022-02-15 15:36:03
【问题描述】:
我制作了一个简单的登录程序,它使用一个存储用户名和密码的访问数据库。这是打开第二个表单的登录按钮的代码:
private void btnlogin_Click(object sender, EventArgs e)
{
con.Open();
string login = "SELECT * FROM tbluser WHERE username= '" + txtusername.Text + "' and password= '" + txtpassword.Text + "'";
cmd = new OleDbCommand(login,con);
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read() == true)
{
new Form3().Show();
this.Close();
}
else
{
MessageBox.Show("Invalid Username or Password", "Login failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtpassword.Text = "";
txtusername.Text = "";
}
}
Form3 没有代码,它是一个空白表单。如何在空白表单上显示登录用户的名称?我需要一个具有指向用户 ID 的外键的单独表吗?如果是这样,我将如何将其编码到程序中?
谢谢
【问题讨论】:
-
“访问存储用户名和密码的数据库” - 停在那里。不要再进一步了。不要存储明文密码。
-
使用parametrized query。另外不要忘记关闭和dispose the connection,当您不再需要它时,您可以通过 using 语句轻松完成。
-
@Fildor 这个程序只适合我,我知道你可以加密或密码保护访问数据库。这是我用数据库制作的第一个程序,我相信你可以说出来。
-
我不在乎这是你的第一个还是 1000 个......只要拿走你永远,永远,永远不会存储纯文本密码。甚至没有“加密”的。如果你想学习如何做到这一点,有很多讲座。即使是“有趣的项目”也不要这样做。
-
^^ “如何做到这一点”的意思是“如何安全地处理密码”。如果您在有趣的“只为我的项目”中需要用户 - 为什么他们首先需要密码?如果您记住他们的名字,最好让他们登录,而不是实施完全不安全的密码机制。你会习惯这一点。迟早,您将使用与您的实际密码相似的密码......你看,我要去哪里,对吧?