2013-06-21 2 views
-1

누군가가 버튼을 클릭 할 때 사용자 이름과 암호를 확인하는 데 문제가 있습니다. 나는 user_logon_iduser_password이라는 두 개의 텍스트 박스를 가지고있다.Microsoft Visual Studio에서 사용자 이름과 암호 확인

는 내가 그 이름 (user_logon_id)와 비밀번호 (user_password)를 모두 확인 동일한 행에하는 가정 MyUsers라는 테이블이 있습니다. 일치하지 않으면 사용자에게 알려야합니다. 일치하면 userAdmin.aspx으로 지정하십시오.

Microsoft Visual Studio 2008을 사용하고 있습니다. 나는 이것에 진짜로 새롭고 진짜로 이것에 파악을 얻고 싶으면. 암호를 암호화하는 것에 대해 걱정할 필요가 없습니다.

+1

'없음' "나는. 비밀번호를 암호화에 대해 걱정할 필요가 없습니다",하지만 당신은 암호 해시에 대해 걱정해야한다. 명시 적으로 명시된 요구 사항이 아니더라도 항상 수행해야합니다. – David

+1

오류를 찾으셨습니까? 여기서 문제가되는 것은 무엇입니까? 사용자 이름과 암호를 확인하고 한 SQL에서 행 수를 확인하도록 쿼리를 변경 한 다음 execute 스칼라를 사용하여 카운트를 얻고 카운트 인증 사용자를 기반으로합니다. –

+0

SQL 인젝션에 대해 아무 것도 말하지 ... – RBarryYoung

답변

-1

디버거에서이 코드를 실행하여 쿼리가 행을 반환하는지 확인할 수 있습니까?

제안 :

이 같은 쿼리를 매개 변수화 고려 :

Dim conn As New SqlConnection(_connectionString) 
conn.Open() 
Dim s As String = "SELECT user_password FROM MyUsers WHERE user_logon_id = @user_login_id" 
Dim cmd As New SqlCommand(s) 
cmd.Parameters.Add("@user_login_id", Me.user_logon_id.Text) 
Dim reader As SqlDataReader = cmd.ExecuteReader() 

해시

데이터베이스 테이블에 사용자 이름과 암호 경기에서 선택 고려 어떤 방법으로 암호를 입력합니다. 결과가 하나의 레코드 인 경우 로그인이 성공했습니다.

 Dim s As String = "SELECT userid FROM MyUsers WHERE user_logon_id = @user_login_id and [email protected]_password" 

전체 코드

Protected Sub butSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles butSubmit.Click 

Dim myReader As Data.SqlClient.SqlDataReader 
Dim mySqlConnection As Data.SqlClient.SqlConnection 
Dim mySqlCommand As Data.SqlClient.SqlCommand 

'Establish the SqlConnection by using the configuration manager to get the connection string in our web.config file. 
mySqlConnection = New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString1").ToString()) 
Dim sql As String = "SELECT userid FROM MyUsers WHERE user_logon_id = @user_login_id and [email protected]_password" 

mySqlCommand = New Data.SqlClient.SqlCommand(sql, mySqlConnection) 

cmd.Parameters.Add("@user_login_id", Me.user_logon_id.Text) 
cmd.Parameters.Add("@user_password", Me.user_password.Text) 

Try 
    mySqlConnection.Open() 
    myReader = mySqlCommand.ExecuteReader() 

    If (myReader.HasRows) Then  
      'Open page with users and roles 
      Dim message As String = "Correct password" 
      Dim style As MsgBoxStyle = MsgBoxStyle.OkOnly 
      Dim title As String = "Authenticated" 
      MsgBox(message, style, title) 
    End If 

Catch ex As Exception 
    Console.WriteLine(ex.ToString()) 
Finally 
    If Not (myReader Is Nothing) Then 
     myReader.Close() 
    End If 

    If (mySqlConnection.State = Data.ConnectionState.Open) Then 
     mySqlConnection.Close() 
    End If 

End Try 

End Sub 
관련 문제