Lokales Benutzersystem

    • VB.NET

      Lokales Benutzersystem

      Lokales Benutzersystem


      Im folgenden werde ich erklären, wie man mit Visual Basic 2012 ein lokales Benutzersystem erstellt.

      Zurzeit wird nur ein Benutzer unterstützt.

      Dann fangen wir mal an.

      Registrierung

      Ihr braucht folgende Controls:

      Spoiler anzeigen
      2 Formen
      Je 2 Textboxen (UsernameBox, PasswordBox)
      Je 1 Button (Button1)


      Beginnen wir mit der Registrierungsform:

      Diese könnte z.B. so aussehen:




      Zum Sourcecode:

      Die erforderlichen Bibliotheken + Option Strict On

      VB.NET-Quellcode

      1. Option Strict On
      2. Imports Microsoft.Win32
      3. Imports System.Security.Cryptography
      4. Imports System.Text


      Die Registrierungsfunktion

      VB.NET-Quellcode

      1. Public Sub Register(ByVal Uname As String, ByVal Pass As String)
      2. If Not Uname = "" AndAlso Not Pass = "" Then
      3. 'Hier wird geprüft, ob in beiden Feldern etwas drinsteht.
      4. Uname = MD5StringHash(Uname)
      5. 'Hier wird der Benutzername in einen MD5-Hash umgewandelt.
      6. Pass = MD5StringHash(Pass)
      7. 'Hier wird das Passwort in einen MD5-Hash umgewandelt.
      8. SaveSetting("DeinProgramm", "Logindata", "Username", Uname)
      9. 'Hier wird der Benutzernamenhash in den Settings gespeichert.
      10. SaveSetting("DeinProgramm", "Logindata", "Password", Pass)
      11. 'Hier wird das Passwort in den Settings gespeichert.
      12. End If
      13. End Sub


      VB.NET-Quellcode

      1. Public Function MD5StringHash(ByVal strString As String) As String
      2. Dim MD5 As New MD5CryptoServiceProvider
      3. Dim Data As Byte()
      4. Dim Result As Byte()
      5. Dim Res As String = ""
      6. Dim Tmp As String = ""
      7. Data = Encoding.ASCII.GetBytes(strString)
      8. Result = MD5.ComputeHash(Data)
      9. For i As Integer = 0 To Result.Length - 1
      10. Tmp = Hex(Result(i))
      11. If Len(Tmp) = 1 Then Tmp = "0" & Tmp
      12. Res += Tmp
      13. Next
      14. Return Res
      15. End Function


      Aufrufen könnt ihr die Registrierung z.B. so:

      VB.NET-Quellcode

      1. Dim UserName as String = UsernameBox.Text
      2. Dim Passwort as String = PasswordBox.Text
      3. Register(UserName, Passwort)



      Kommen wir zum Login:

      Dieser könnte z.B. so aussehen:



      Login

      Ihr braucht folgende Controls:

      Spoiler anzeigen
      2 Formen
      Je 2 Textboxen (UsernameBox, PasswordBox)
      Je 1 Button (Button1)



      Wieder die Bibliotheken + Option Strict On

      VB.NET-Quellcode

      1. Option Strict On
      2. Imports Microsoft.Win32
      3. Imports System.Security.Cryptography
      4. Imports System.Text


      VB.NET-Quellcode

      1. Public Function login(ByVal Uname As String, ByVal Pass As String) As Boolean
      2. Uname = MD5StringHash(Uname)
      3. 'Uname in einen MD5-Hash umwandeln
      4. Pass = MD5StringHash(Pass)
      5. 'Pass in einen MD5-Hash umwandeln
      6. Dim UserTemp As String
      7. UserTemp = GetSetting("DeinProgramm", "Logindata", "Username")
      8. 'Gespeicherten Usernamen auslesen
      9. Dim PassTemp As String
      10. PassTemp = GetSetting("DeinProgramm", "Logindata", "Password")
      11. 'Gespeichertes Passwort auslesen
      12. If Not IsNothing(Uname) AndAlso Not IsNothing(Pass) Then
      13. 'Prüfen, ob Uname oder Pass leer sind
      14. If Uname = UserTemp AndAlso Pass = PassTemp Then
      15. 'Wenn die eingegebenen Logindaten, die gleichen sind wie die gespeicherten, dann
      16. Return True
      17. 'True zurückgeben
      18. Else
      19. Return False
      20. 'Ansonsten False
      21. End If
      22. End If
      23. Return False
      24. End Function



      VB.NET-Quellcode

      1. Public Function MD5StringHash(ByVal strString As String) As String
      2. Dim MD5 As New MD5CryptoServiceProvider
      3. Dim Data As Byte()
      4. Dim Result As Byte()
      5. Dim Hash As String = ""
      6. Dim Temp As String = ""
      7. Data = Encoding.ASCII.GetBytes(strString)
      8. Result = MD5.ComputeHash(Data)
      9. For i As Integer = 0 To Result.Length - 1
      10. Temp = Hex(Result(i))
      11. If Len(Temp) = 1 Then Temp = "0" & Temp
      12. Hash += Temp
      13. Next
      14. Return Hash
      15. End Function


      Ein Aufruf erfolgt z.B. so:

      VB.NET-Quellcode

      1. If Not UsernameBox.Text = "" AndAlso Not PasswordBox.Text = "" Then
      2. If login(UsernameBox.Text, PasswordBox.Text) = True Then
      3. 'Login Daten sind richtig
      4. Else
      5. 'Login Daten sind falsch
      6. End If
      7. End If



      Anmerkungen und Kritik bitte posten.