2012-01-14 5 views
1

おはようございます、ログインフィールドの検証

私の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 

私が代わりにそれを使用できるかどうかを確認するためにSELECT CASE文を使用して上に読んでいます - が、まだその仕事を作る方法を考え出したていません。ありがとう。

//運命

答えて

1

は、私は絶対にここにブライアン:)

しかし一つの小さな点に同意します。ユーザー名が間違っているか、「セキュリティ」の観点からパスワードが間違っているかをユーザーに知らせないでください。その答えと文体の提案のおかげで、私は助言にそれらを撮影し、それに応じて自分のコードを修正した - ここで

は私が

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 
+0

あなたの答えもありがとう。私はそれをテストし、それは正常に働いた。私はあなたがセキュリティに関してどこから来ているのか理解していますが、私のユーザーの "ダム"なアプローチのため、できるだけアプリケーションを「ダミープルーフ」することに決めました。 –

1

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 

いくつかの文体の注意事項:これを試してみてください

  1. LABEL3は、適切な名前を必要とします。コードで参照する場合は、デフォルトを使用しないでください。今は問題ありませんが、フォームが複雑になると、label1、label6、label23の違いを覚えていません。そのすべてをあなたの頭の中にとどめてはいけません。代わりに、コントロールにわかりやすい名前を使用します。

  2. <>の使用は「等しくない」ことに注意してください。これは、double-backを使わずに左から右に読むことができ、その節の前にNotがあることを覚えているので、オペレータNotより少し良く読めることがあります。これは実際に技術的な正しさよりも個人的な好みの問題です。

+0

が@Brianウィリスが提案するものです。私はあなたの提案をテストし、それは完全に働いた。 –