在自定义身份验证表格中验证用户凭据的问题



我在这里对我的登录系统有问题。

当我输入有效的用户名和密码时,我可以转到下一个表单。

并且当我输入错误的用户名和正确的密码时,我仍然可以转到下一个表单。

并更正用户名和错误的密码,我仍然可以转到下一表格。

如果我的用户名或密码错了,那么正确的代码是什么?

这是我的代码。

private void btnEnter_Click(object sender, EventArgs e)        
{
    if (tbUsername.Text == "username")              
    {                 
        AdminMainMenu x = new AdminMainMenu();
        x.Show();
        t.Play();           
        this.Dispose();          
    }         
    else
    {
        SystemSounds.Hand.Play();
        MessageBox.Show("Invalid Username! ", "Error");
    }  
    if (tbPassword.Text == "password")
    {
        AdminMainMenu x = new AdminMainMenu();
        x.Show();
        t.Play();
        this.Dispose();
    }
    else
    {
        SystemSounds.Hand.Play();
        MessageBox.Show("Invalid Password! ", "Error");
    }   
}

我只能猜测您要问的内容,但是如果您希望用户名和密码都正确,请在显示表单之前使用此而不是

if (tbUsername.Text == "username")
{
    if(tbPassword.Text == "password")
    {
        AdminMainMenu x = new AdminMainMenu();
        x.Show();
        t.Play();
        this.Dispose();
    }
    else
    {
        MessageBox.Show("Wrong password", "Error");
    }
}
else
{
    if(tbPassword.Text == "password")
    {
        MessageBox.Show("Wrong username", "Error");
    }
    else
    {
        MessageBox.Show("Wrong username and password", "Error");
    }
}

您可以在成功的用户名if块中嵌套密码检查if块:

private void btnEnter_Click(object sender, EventArgs e)
{
    if (tbUsername.Text == "username")
    {
        if (tbPassword.Text == "password")
        {
            AdminMainMenu x = new AdminMainMenu();
            x.Show();
            t.Play();
            this.Dispose();
        }
        else
        {
            SystemSounds.Hand.Play();
            MessageBox.Show("Invalid Password! ", "Error");
        }    
    }
    else
    {
        SystemSounds.Hand.Play();
        MessageBox.Show("Invalid Username! ", "Error");
    }  
}

您拥有它的方式是用户名检查的else块是在用户名错误时执行的,然后代码继续进行密码检查。您需要确保仅在检查用户名和密码后显示表单。

另外,如果用户名或密码不正确,则可以单独检查单独和return

private void btnEnter_Click(object sender, EventArgs e)
{
    if (tbUsername.Text != "username")
    {
        SystemSounds.Hand.Play();
        MessageBox.Show("Invalid Username! ", "Error");
        return;
    }
    if (tbPassword.Text != "password")
    {
        SystemSounds.Hand.Play();
        MessageBox.Show("Invalid Password! ", "Error");
        return;
    } 
    //If we got here in code execution, then both username and password are correct
    AdminMainMenu x = new AdminMainMenu();
    x.Show();
    t.Play();
    this.Dispose();
}

最新更新