Hey Liebe Community wie kann ich diese Klasse besser die Methode Login() wie kann ich die in einem Anderen Thread ausführen oder ist Thread hier überhaupt sinnvoll bzw gehen die Events auch aus einem Thread herraus?
Bin für jede Antwort sehr dankbar
*Topic verschoben*
VB.NET-Quellcode
- Imports MySql.Data
- Imports MySql.Data.MySqlClient
- Public Class LoginManager
- Private mysqlcon As New MySqlConnection
- Private _Mepassword As String = ""
- Private _Meuserid As String = ""
- Private _Meusername As String = ""
- Private _Medevperms As Integer = 0
- ''' <summary>
- ''' Dieses Event wird ausgelöst, wenn ein Falsches Passwort angegeben wurde.
- ''' </summary>
- Public Event WrongPasswordEvent()
- ''' <summary>
- ''' Dieses Event wird ausgelöst, wenn der Benutzer nicht existiert.
- ''' </summary>
- Public Event UnknownUserEvent()
- ''' <summary>
- ''' Dieses Event wird ausgelöst, wenn ein Login erfolgreich war.
- ''' </summary>
- Public Event LoginSuccessEvent()
- ''' <summary>
- ''' Dieses Event wird ausgelöst, wenn sich ein gesperrter Benutzer einloggt.
- ''' </summary>
- Public Event UserBannedEvent()
- Private Sub InizalizeConnection()
- Hier Wird das MySql Passwort Verschlüsselt an die Connection übergeben
- End Sub
- ''' <summary>
- ''' Diese Methode, meldet einen Benutzer an.
- ''' </summary>
- ''' <param name="_username">Der Benutzername des Benutzers.</param>
- ''' <param name="_password">Das Passwort des Benutzers.</param>
- Public Sub Login(_username As String, _password As String)
- InizalizeConnection()
- mysqlcon.Open()
- If UserExists(_username) Then
- mysqlcon.Close()
- mysqlcon.Open()
- If Not CheckIsBanned(_username) = 1 Then
- mysqlcon.Close()
- mysqlcon.Open()
- DownloadUserdata(_username)
- mysqlcon.Close()
- If _password = _Mepassword Then
- My.Settings.login_status = True
- My.Settings.user_name = _username
- My.Settings.user_id = _Meuserid
- My.Settings.dev_perms = _Medevperms
- My.Settings.Save()
- My.Settings.Reload()
- RaiseEvent LoginSuccessEvent()
- Else
- RaiseEvent WrongPasswordEvent()
- End If
- Else
- RaiseEvent UserBannedEvent()
- mysqlcon.Close()
- End If
- Else
- RaiseEvent UnknownUserEvent()
- mysqlcon.Close()
- End If
- End Sub
- Private Sub DownloadUserdata(_username As String)
- Try
- Dim mysqlcmd As New MySqlCommand
- mysqlcmd = mysqlcon.CreateCommand
- mysqlcmd.CommandText = "SELECT * FROM tb4_accounts WHERE user_name='" + _username + "'"
- Dim mysqlreader As MySqlDataReader = mysqlcmd.ExecuteReader
- While mysqlreader.Read
- _Mepassword = mysqlreader("user_password")
- _Meuserid = mysqlreader("user_id")
- _Medevperms = mysqlreader("dev_perms")
- End While
- mysqlcmd.Dispose()
- mysqlreader.Close()
- Catch ex As Exception
- MsgBox("Es ist ein Fehler beim abrufen der Benutzerdaten aufgetreten.", MsgBoxStyle.Critical, "TrackBoard 4 - Anmelden")
- End Try
- End Sub
- Private Function CheckIsBanned(_username As String) As Integer
- Try
- Dim _isBanned As Integer = 0
- Dim mysqlcmd As New MySqlCommand
- mysqlcmd = mysqlcon.CreateCommand
- mysqlcmd.CommandText = "SELECT * FROM tb4_accounts WHERE user_name='" + user_name + "'"
- Dim mysqlreader As MySqlDataReader = mysqlcmd.ExecuteReader
- While mysqlreader.Read()
- _isBanned = mysqlreader("acc_bannned")
- End While
- Return _isBanned
- mysqlcmd.Dispose()
- mysqlreader.Close()
- Catch ex As Exception
- MsgBox("Es ist ein Fehler beim Prüfen der Benutzerdaten aufgetreten.", MsgBoxStyle.Critical, "TrackBoard 4 - Anmelden")
- Return 0
- End Try
- End Function
- Private Function UserExists(_username As String) As Boolean
- Try
- Dim mysqlcmd As New MySqlCommand
- mysqlcmd = mysqlcon.CreateCommand
- mysqlcmd.CommandText = "SELECT * FROM tb4_accounts WHERE user_name='" + _username + "'"
- Dim mysqlreader As MySqlDataReader = mysqlcmd.ExecuteReader
- Return mysqlreader.Read
- mysqlcmd.Dispose()
- mysqlreader.Close()
- Catch ex As Exception
- MsgBox("Es ist ein Fehler beim Prüfen des Benutzernamens aufgetreten.", MsgBoxStyle.Critical, "TrackBoard 4 - Anmelden")
- Return False
- End Try
- End Function
- End Class
Bin für jede Antwort sehr dankbar
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()