Vb.net 验证登录字段

Vb.net 验证登录字段,vb.net,Vb.net,你好,所以 多亏了你的帮助,我的VB.net技能正在提高。我还有一个小请求-需要一些代码方面的帮助,这些代码在调试过程中遇到了问题 我的目的是让代码-在按钮上。单击事件-检查用户名和密码字段,并根据错误返回错误。或者,如果两者都错误,则返回不同的错误消息。我已经将用户名设置为部分,将密码设置为部分(仍在学习如何使用外部身份验证) 所以,这里的代码-我如何才能使这项工作 If Not TextBoxUsername.Text = "parts" Then Label3.ForeCo

你好,所以

多亏了你的帮助,我的VB.net技能正在提高。我还有一个小请求-需要一些代码方面的帮助,这些代码在调试过程中遇到了问题

我的目的是让代码-在按钮上。单击事件-检查用户名和密码字段,并根据错误返回错误。或者,如果两者都错误,则返回不同的错误消息。我已经将用户名设置为部分,将密码设置为部分(仍在学习如何使用外部身份验证)

所以,这里的代码-我如何才能使这项工作

If Not TextBoxUsername.Text = "parts" Then
        Label3.ForeColor = Color.Red
        Label3.Text = "Invalid Username..."
        TextBoxUsername.SelectAll()
        TextBoxUsername.Focus()
    Else
        If Not TextBoxPassword.Text = "parts" Then
            Label3.ForeColor = Color.Red
            Label3.Text = "Invalid Password..."
            TextBoxPassword.SelectAll()
            TextBoxPassword.Focus()

            'NOTES:
            'This section of the code is being skipped, and I can't figure out why.  
        ElseIf TextBoxUsername.Text <= "parts" And TextBoxPassword.Text <= "parts" Then
            Label3.ForeColor = Color.Red
            Label3.Text = "Invalid USERNAME and PASSWORD..."
            TextBoxUsername.SelectAll()
            TextBoxUsername.Focus()
        Else
            Label3.ForeColor = Color.Green
            Label3.Text = "Login successful..."
            FormMain.Show()
            Me.Close()
        End If

    End If
如果不是TextBoxUsername.Text=“parts”,则
Label3.ForeColor=颜色。红色
Label3.Text=“无效的用户名…”
TextBoxUsername.SelectAll()
TextBoxUsername.Focus()
其他的
如果不是TextBoxPassword.Text=“parts”,则
Label3.ForeColor=颜色。红色
Label3.Text=“无效密码…”
TextBoxPassword.SelectAll()
TextBoxPassword.Focus()
'注:
“这段代码被跳过了,我不知道为什么。

ElseIf TextBoxUsername.Text
SELECT CASE
在这里并不是合适的解决方案。试试这个:

If TextBoxUsername.Text <> "parts" And TextBoxPassword.Text <> "parts" Then
    Label3.ForeColor = Color.Red
    Label3.Text = "Invalid USERNAME and PASSWORD..."
    TextBoxUsername.SelectAll()
    TextBoxUsername.Focus()
Else If TextBoxUsername.Text <> "parts" Then
    Label3.ForeColor = Color.Red
    Label3.Text = "Invalid Username..."
    TextBoxUsername.SelectAll()
    TextBoxUsername.Focus()
Else If TextBoxPassword.Text <> "parts" Then
    Label3.ForeColor = Color.Red
    Label3.Text = "Invalid Password..."
    TextBoxPassword.SelectAll()
    TextBoxPassword.Focus()
Else
    Label3.ForeColor = Color.Green
    Label3.Text = "Login successful..."
    FormMain.Show()
    Me.Close()
End If
如果TextBoxUsername.Text“parts”和TextBoxPassword.Text“parts”,则
Label3.ForeColor=颜色。红色
Label3.Text=“无效的用户名和密码…”
TextBoxUsername.SelectAll()
TextBoxUsername.Focus()
否则,如果TextBoxUsername.Text“parts”,则
Label3.ForeColor=颜色。红色
Label3.Text=“无效的用户名…”
TextBoxUsername.SelectAll()
TextBoxUsername.Focus()
否则,如果TextBoxPassword.Text“parts”,则
Label3.ForeColor=颜色。红色
Label3.Text=“无效密码…”
TextBoxPassword.SelectAll()
TextBoxPassword.Focus()
其他的
Label3.ForeColor=颜色。绿色
Label3.Text=“登录成功…”
FormMain.Show()
我
如果结束
一些文体注释:

  • Label3需要一个正确的名称。如果要在代码中引用默认值,请不要使用默认值。现在可以了,但是当你的表单变得更复杂时,你会很难记住label1、label6和label23之间的区别。不要试图把这些都记在脑子里。相反,对控件使用描述性名称

  • 注意
    的用法,意思是“不相等”。这有时比
    Not
    操作符读起来稍微好一点,因为您可以从左到右阅读,而不必往回翻倍,并且记住子句前面有一个
    Not
    。这实际上是个人偏好而不是技术正确性的问题


  • 我完全同意布莱恩的观点:)

    然而,有一点很小。从“安全性”的角度来看,永远不要让用户知道用户名或密码是否不正确

    以下是我的建议

    If TextBoxUsername.Text <> "parts" or TextBoxPassword.Text <> "parts" Then
        Label3.ForeColor = Color.Red
        Label3.Text = "Invalid USERNAME OR Invalid PASSWORD. Please Try Again"
    Else
        Label3.ForeColor = Color.Green
        Label3.Text = "Login successful..."
        FormMain.Show()
        Me.Close()
    End If
    
    如果是TextBoxUsername.Text“parts”或TextBoxPassword.Text“parts”,则
    Label3.ForeColor=颜色。红色
    Label3.Text=“无效的用户名或密码。请重试”
    其他的
    Label3.ForeColor=颜色。绿色
    Label3.Text=“登录成功…”
    FormMain.Show()
    我
    如果结束
    
    @Brian Willis-谢谢你的回答和风格建议,我已经考虑了它们,并相应地修改了我的代码。我确实测试了你的建议,效果非常好。谢谢你的回答。我测试了一下,效果很好。我理解你对安全性的看法,但是,由于我的用户对任何计算机都采取“愚蠢”的方式,我决定尽可能地对应用程序进行“虚拟验证”。