【发布时间】:2019-01-22 11:32:58
【问题描述】:
我需要有关此身份验证表单的帮助。
这是xml文件:
<USER_LIST>
<user>
<name>giulio</name>
<password>prova</password>
</user>
<user>
<name>giulia</name>
<password>prova1</password>
</user>
<user>
<name>renato</name>
<password>zero</password>
</user>
</USER_LIST>
这是我写的代码:
private void button4_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("dati.txt");
foreach (XmlNode node in doc.SelectNodes("//user"))
{
String User = node.SelectSingleNode("name").InnerText;
String Pass = node.SelectSingleNode("password").InnerText;
if (User == textBox1.Text && Pass == textBox2.Text)
{
button1.Visible = true;
dlt_btn.Visible = true;
button3.Visible = true;
button3.Visible = true;
button5.Visible = true;
return;
}
else
{
MessageBox.Show("Invalid Username or Password!");
}
}
}
但是像这样,例如,如果我使用名称“renato”和密码“零”登录 它给了我两次消息框“无效的用户名或密码!”第三次显示所需的按钮。我知道为什么,但我想不出另一种方法来做到这一点。这是我的第一个项目,我像昨天一样开始编码,所以如果问你这样愚蠢的事情,我很抱歉。
提前感谢您的帮助!
【问题讨论】:
-
因为循环会一一检查所有节点,并且对于与给定用户/通行证不匹配的每个节点,都会显示消息框。
-
请不要这样做。您的系统不安全,您正在存储明文密码!
-
我想这只是为了学习目的,否则显然不安全。