Visual Studio에서 VB를 사용하여 사용자 정의 로그인 페이지를 만들고 있습니다. 그러나 로그인 할 때마다 다음 오류가 표시됩니다. " '.'근처에 구문이 잘못되었습니다." 나는 잘못된 사용자 이름/암호 콤보가이 인식하지만, 잘 될 때이 오류가 발생하고 로그인에 실패하여 SQL의이 부분에서VB 사용자 정의 로그인 페이지. '.'근처의 구문이 잘못되었습니다.
Private Function VerifyLogin(ByVal UserName As String) As Boolean
Try
Dim cnn As New Data.SqlClient.SqlConnection
cnn.ConnectionString = My.MySettings.Default.RedwoodConnectionString.Replace(";Integrated Security=True", ";Integrated Security=False") & UserSetting
Dim cmd As New Data.SqlClient.SqlCommand
cmd.Connection = cnn
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT COUNT (principal_id) FROM _ sys.database_principals WHERE(name = '" & UserName & "')"
cnn.Open()
Dim i As Integer
i = cmd.ExecuteScalar()
cnn.Close()
If (i > 0) Then Return True
Return False
Catch ex As Exception
System.Windows.Forms.MessageBox.Show("Error: " & ex.Message & vbNewLine & "Location: VerifyLogin() in Login.vb" & vbNewLine & "Returned value: False")
Return False
End Try
End Function
데이터베이스 쿼리는 SQL 주입 공격에 취약합니다. –