【问题标题】:Issue validating user credentials in custom authentication form [closed]以自定义身份验证表单验证用户凭据的问题 [关闭]
【发布时间】:2012-10-14 15:34:39
【问题描述】:

我的登录系统有问题。

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

当我输入错误的用户名和正确的密码时,我仍然可以进入下一个表格。

并且正确的用户名和错误的密码我仍然可以进入下一个表单。

如果我的用户名或密码错误,不让进入下一步的正确代码是什么?

这是我的代码。

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");
    }   
}

【问题讨论】:

  • 这是在什么环境下运行的?这里没有明显的重定向。 t 到底是什么鬼?
  • @Grant Thomas。 microsoft visual C# 2008. t 用于我的声音播放器^_^

标签: c# login


【解决方案1】:

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

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");
    }
}

【讨论】:

  • 如果用户名错误,我想要我的代码,消息框会告诉我“用户名无效”,当密码错误时它会告诉我“密码无效”..
  • tnx mate.. 你的代码有效。嘿嘿tnx很多..
  • 嘿伙计.. 我还有一个问题要问。如果用户名和密码错误怎么办?如何将该代码添加到您的代码中?呵呵
  • @Stew 我已编辑将其添加到:)
【解决方案2】:

您可以将密码检查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();
}

【讨论】:

    猜你喜欢
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多