-2
通過從XML有問題的用戶身份驗證用戶從C#窗口登錄。使用C#從xml登錄?
並返回錯誤「Object reference not set to an instance of an object
」。
近 「string userName = user["username"].InnerText;
」
XML文件是:
<?xml version="1.0" encoding="utf-8"?>
<Users>
<user username="husye">
<password>husuko</password>
<author>Admin</author>
<name>Hussein</name>
<mobile>0916821918</mobile>
</user>
<user username="usminuru">
<password>123</password>
<author>Admin</author>
<name>Ismail</name>
<mobile>0910178976</mobile>
</user>
</Users>
的登錄電子表單代碼是:
if (txtUserName.Text == "" || txtPassword.Text == "")
{
MessageBox.Show("Username or Passowrd field is empty!");
ClearTextBoxes();
}
int i = 0; // we use this variable to count if ther’s a user with this name
XmlDocument myXml=new XmlDocument();
myXml.Load(Application.StartupPath + "/AppUsers/Users.xml");
XmlNodeList userList = myXml.SelectNodes("Users/user");
foreach(XmlNode user in userList)
{
string userName = user["username"].InnerText;
string userPassword = user["password"].InnerText;
string userAuthor = user["author"].InnerText;
if (userName == txtUserName.Text)
{
++i;
if (userPassword == txtPassword.Text)
{
Form panel;
this.Opacity = 0;
switch(userAuthor)
{
case "Admin":
panel = new MainWindow();
panel.Show();
break;
case "Assistant" :
panel = new Report();
panel.Show();
break;
}
}
else
{
MessageBox.Show("Wrong Password!");
ClearTextBoxes();
}
以前我曾嘗試只爲用戶名工作正常使用的元素值。但是這具有用戶名的屬性值。
請幫助,在此先感謝。
我很抱歉,但我不明白什麼是不加工。錯誤發生在哪裏?什麼是錯誤信息?此外,以這種方式創建登錄名是非常不安全的,請查看更好的方法來執行此操作。 –
你是對的,只是我編輯了我的問題。 – ensberiyu