第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

帶有 XML 文件的身份驗(yàn)證表單

帶有 XML 文件的身份驗(yàn)證表單

C#
慕森卡 2021-11-28 20:14:07
我需要有關(guān)此身份驗(yàn)證表格的幫助。這是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”和密碼“零”登錄,它會(huì)返回兩次消息框“用戶名或密碼無(wú)效!” 第三次它顯示所需的按鈕。我知道為什么,但我想不出另一種方法來(lái)做到這一點(diǎn)。這是我的第一個(gè)項(xiàng)目,我像昨天一樣開(kāi)始編碼,所以如果問(wèn)你這樣的愚蠢事情,我很抱歉。提前謝謝你的幫助!
查看完整描述

3 回答

?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

我想這只是為了學(xué)習(xí)目的或應(yīng)該保持簡(jiǎn)單的作業(yè),否則根本不安全。


您不需要使用循環(huán)。目前,您的循環(huán)循環(huán)會(huì)一一檢查所有節(jié)點(diǎn),對(duì)于與給定用戶/密碼不匹配的每個(gè)節(jié)點(diǎn),都會(huì)顯示消息框,這就是為什么您會(huì)看到消息框,直到循環(huán)到達(dá)正確的用戶/密碼為止。


在不使用循環(huán)的情況下,您可以通過(guò)這種方式輕松檢查給定的用戶/密碼是否存在于您的 xml 文件中:


var userName = userNameTextBox.Text;

var password = passwordTextBox.Text;

var match = System.Xml.Linq.XElement.Load(@"d:\users.xml")

    .Elements("user")

    .Where(x => x.Element("name")?.Value == userName &&

                x.Element("password")?.Value == password)

    .Any();

然后如果match不是真的,你可以顯示消息框。


查看完整回答
反對(duì) 回復(fù) 2021-11-28
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

問(wèn)題是每次檢查 XML 中不匹配的條目時(shí)都會(huì)顯示消息框。


對(duì)代碼進(jìn)行最少更改的最簡(jiǎn)單方法如下:


private void button4_Click(object sender, EventArgs e)

{

    XmlDocument doc = new XmlDocument();

    doc.Load("dati.txt");


    bool found = false;


    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)

        {

            found = true;

            break;

        }

    }


    if (found)

    {

        button1.Visible = true;

        dlt_btn.Visible = true;

        button3.Visible = true;

        button3.Visible = true;

        button5.Visible = true;

    }

    else

    {

        MessageBox.Show("Invalid Username or Password!");

    }

我們創(chuàng)建一個(gè)名為的變量found并將其設(shè)置為false. 這是為了確保如果 XML 為空或沒(méi)有匹配項(xiàng),我們將無(wú)法通過(guò)檢查。


然后我們遍歷結(jié)果并設(shè)置found = true是否找到匹配項(xiàng)。我們調(diào)用 break 來(lái)跳出循環(huán)。


循環(huán)完成后,我們檢查局部變量是否為真:


if (found)

這是簡(jiǎn)寫 if (found == true)


如果這是真的,那么我們會(huì)像以前一樣啟用您的按鈕。如果它不正確,那么我們將顯示錯(cuò)誤消息。


它只會(huì)顯示一次錯(cuò)誤消息。



查看完整回答
反對(duì) 回復(fù) 2021-11-28
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是一個(gè)解決方案,有效:


private void button4_Click(object sender, EventArgs e)

{

    string username;

    string password;

    string CurrentUser = "";

    string CurrentPwd = "";

    bool LoginStatus = false;


    username = textBox1.Text;

    password = textBox2.Text;


    XmlDocument xmxdoc = new XmlDocument();

    xmxdoc.Load("dati.txt");

    XmlNodeList xmlnodelist = xmxdoc.GetElementsByTagName("user");


    foreach (XmlNode xn in xmlnodelist)

    {

        XmlNodeList xmlnl = xn.ChildNodes;

        foreach (XmlNode xmln in xmlnl)

        {

            if (xmln.Name == "name")

            {

                if (xmln.InnerText == username)

                {

                    CurrentUser = username;

                }

            }

            if (xmln.Name == "password")

            {

                if (xmln.InnerText == password)

                {

                    CurrentPwd = password;

                }

            }

        }

        if ((CurrentUser != "") & (CurrentPwd != ""))

        {

            LoginStatus = true;

        }

    }

    if (LoginStatus == true)

    {

        button1.Visible = true;

        dlt_btn.Visible = true;

        button3.Visible = true;

        button3.Visible = true;

        button5.Visible = true;

        return;

    }

    else

    {

        MessageBox.Show("Invalid Username or Password!");

    }

}


查看完整回答
反對(duì) 回復(fù) 2021-11-28
  • 3 回答
  • 0 關(guān)注
  • 230 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)