2012-10-24 118 views
-11

我在这里遇到了我的登录系统问题。以自定义身份验证表格验证用户凭证问题

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

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

正确的用户名和错误的密码我仍然可以去下一个表格。

如果我的用户名或密码错误,请不要放错位置的正确代码是什么?

这是我的代码。

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

在什么样的环境是这样运行?这里没有明显的重定向。那么魔鬼是什么? –

+0

@Grant Thomas。微软视觉C#2008年。吨是我的soundplayer^_^ – Stew

回答

2

我只能冒险在你问一个猜测,但如果你想两者的用户名和密码,显示窗体使用这种替代

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

我想我的代码,如果用户名是错误的,messagebox会告诉我,“无效的用户名”,当密码错误,它会告诉我“无效密码”.. – Stew

+0

好的,编辑答案。 –

+0

tnx mate ..你的代码有效。 hehee tnx很多.. – Stew

0

可以嵌套密码之前是正确的检查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"); 
    } 
} 

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

或者,您可以检查单独和return从click事件如果用户名或密码不正确,就像这样:

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(); 
} 
+0

它的作品! tnx很多.. – Stew