2012-01-14 7 views
1

안녕하세요,로그인 필드 확인

내 도움 덕분에 VB.NET 기술이 향상되었습니다. 다른 작은 요청이 있습니다 - 디버깅하는 동안 문제가있는 코드에 대한 도움이 필요합니다.

제 의도는 button.click 이벤트에서 코드를 사용하고 Username과 Password 필드를 확인한 다음 잘못 된 부분에 따라 오류를 반환하는 것입니다. 또는 둘 다 틀린 경우 다른 오류 메시지를 리턴하십시오. 사용자 이름을 파트로, 비밀번호를 파트로 설정했습니다 (여전히 외부 인증을 사용하는 방법을 배우는 중입니다).

코드는 다음과 같습니다. 어떻게하면됩니까?

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. <>은 "같지 않음"을 의미합니다. 이것은 가중치가 Not 연산자보다 약간 더 잘 읽는 경우가 있습니다. 두 배 뒤로하지 않고 왼쪽에서 오른쪽으로 읽을 수 있기 때문에이 절 앞에 Not이 있다는 것을 기억하기 때문입니다. 기술적 인 정확성보다는 개인적인 취향의 문제입니다.

+0

는 @ 브라이언 윌리스가 제안하는 것입니다. 나는 당신의 제안을 시험해 보았고 완벽하게 작동했다. –