Hallo,
ich habe eine Login-Maske und sobald man auf den login-Button drückt, wird eine Verbindung zur Datenbank hergestellt und die Eingabe wird überprüft.
Der erste Login-Versuch, also die Zeit zwischen Button_Click und Fehlermeldung dauert Verhältnismäßig lange (ca 2 Sekunden), alle weiteren Versuche gehen blitzschnell (weit unter 1 Sekunde). Dabei ist die Art der Falscheingabe egal.
Wieso dauert der erste Versuch länger und was kann ich dagegen tun?
Der Code, der bei Button_Click ausgeführt wird ist folgender:
ich habe eine Login-Maske und sobald man auf den login-Button drückt, wird eine Verbindung zur Datenbank hergestellt und die Eingabe wird überprüft.
Der erste Login-Versuch, also die Zeit zwischen Button_Click und Fehlermeldung dauert Verhältnismäßig lange (ca 2 Sekunden), alle weiteren Versuche gehen blitzschnell (weit unter 1 Sekunde). Dabei ist die Art der Falscheingabe egal.
Wieso dauert der erste Versuch länger und was kann ich dagegen tun?
Der Code, der bei Button_Click ausgeführt wird ist folgender:
VB.NET-Quellcode
- Private Sub login()
- Dim i As Integer = 0
- Dim tmpHash As String = ""
- Dim tmpSalt As String = ""
- cmd.CommandText = "SELECT txt_passworthash, txt_passwortsalt FROM benutzer WHERE txt_anmeldename = '" & txtUser.Text & "';"
- Try
- con.Open()
- reader = cmd.ExecuteReader
- Do While reader.Read
- i += 1
- If Not DBNull.Value.Equals(reader("txt_passworthash")) Then tmpHash = reader("txt_passworthash") Else tmpHash = ""
- If Not DBNull.Value.Equals(reader("txt_passwortsalt")) Then tmpSalt = reader("txt_passwortsalt") Else tmpSalt = ""
- Loop
- reader.Close()
- con.Close()
- If i = 1 Then
- 'Bilden des Passwort-Hashs und Überprüfung
- 'Login oder Fehlermeldung
- 'Arbeiten nur mit den lokalen Variablen
- Else
- 'Fehlermeldung
- End If
- Catch ex As Exception
- If con.State = ConnectionState.Open Then con.Close()
- End Try
- End Sub