【发布时间】:2017-10-06 18:52:48
【问题描述】:
在我的应用程序中,我有一个登录系统。这是基本的,所以我不需要任何加密。问题是当我想登录时,我插入了凭据(用户名和密码),但它什么也没做。我的代码是:
public void iniciarsessaobutton_Click(object sender, EventArgs e)
{
string txtuser = textusername.Text;
string txtpass = textlogin.Text;
MySqlCommand cmd = new MySqlCommand("SELECT password FROM empregados WHERE user='" + txtuser + "';", mConn);
mConn.Open();
MySqlDataReader login = cmd.ExecuteReader();
login.Read();
string getpass = login["password"].ToString();
if (getpass == txtpass)
{
mConn.Close();
MessageBox.Show("Sessão iniciada");
Admin adm = new Admin();
this.Hide();
adm.Show();
}
else
{
mConn.Close();
MessageBox.Show("Não foi possivel iniciar sessão. Insira a password corretamente.");
}
}
【问题讨论】:
-
mConn变量是否在任何地方初始化? -
您是否尝试过使用调试器单步执行您的代码?我很确定它做了某事,但显然不是你期望它做的。
-
您的代码易受 SQL 注入攻击,通常不安全。密码不应以纯文本形式存储在数据库中。
-
我正确使用了 mConn,它在代码的其他部分也能正常工作。
-
我的密码只是一个4位数字,几乎没有任何安全性。
标签: c# mysql database select login