Jump to content
Welcome, Guest
Existing user? Sign In

Sign In



Sign Up
The MatriX
  • Welcome To Ghbsys
  • CS GO Streaming Version is released. Have fun streaming while cheating!
  • Have a Payment Issue? Send us a Support ticket.
  • Make a thread if you need support or join our discord for live support.
  • Have Suggestions? Make a thread and you'll earn Ghbsys Points for implemented suggestions.
  • Join our discord to stay well connected! Don't forget to integrate your discord to the site
  • Welcome to [GHB] - GAmEhAcKbAsTaRdS Forum

    Welcome to [GHB] - GAmEhAcKbAsTaRdS Forum, like most online communities you must register to view or post in our community, but don't worry this is a simple free process that requires minimal information for you to signup. Be apart of [GHB] - GAmEhAcKbAsTaRdS Forum by signing in or creating an account.
    • Start new topics and reply to others
    • Subscribe to topics and forums to get email updates
    • Get your own profile page and make new friends
    • Send personal messages to other members.

    [VB.NET][MySQL]Login + Register Class


    Maxn
     Share

    Recommended Posts

    Some people askes, if there's a register system belonging to some Login Systems, so I wrote a little Class which allows you to do that.

    Introducing

    This is a VB.NET Class, which allows your users to register an account, which gets saved on a MySQL Database online, so they can login everywhere.

    It includes MD5 hashing of your password and usernames to increase the securtity.

     

    Requirements

    • VB.NET Ide
    • Basic Knowledge of VB.NET
    • MySQL DLL for VB [ Download ] [ How to add ] [ Virusscan ]
    • A MySQL Database, which allows external acess ( Ohost/###### don't ) ( Just google or use something like www.db4free.net )

    Getting Started

     

    At first you need to create the needed databases. Use this as SQL command. Go to your PHPMyAdmin, select your database and click on SQL. ( Look here )

     

    Add this:

     

    Imports System.Security.Cryptography
    Imports System.Text
    Module MD5SECURITY
       Public Function MD5StringHash(ByVal strString As String) As String
           Dim MD5 As New MD5CryptoServiceProvider
           Dim Data As Byte()
           Dim Result As Byte()
           Dim Res As String = ""
           Dim Tmp As String = ""
    
           Data = Encoding.ASCII.GetBytes(strString)
           Result = MD5.ComputeHash(Data)
           For i As Integer = 0 To Result.Length - 1
               Tmp = Hex(Result(i))
               If Len(Tmp) = 1 Then Tmp = "0" & Tmp
               Res += Tmp
           Next
           Return Res
       End Function
    End Module

     

    Then the Registering class RegSys.vb:

     

    Imports MySql.Data.MySqlClient
    Public Class RegSys
       Private _connection As MySqlConnection = New MySqlConnection
       Private _adapter As New MySqlDataAdapter
       Private _query As String
       Private _command As New MySqlCommand
       Private _user As String
       Private _password(2) As String
       Public _continue As Boolean = False
    
       Public Function SetConnectionData(ByVal ip As String, ByVal username As String, ByVal pw As String, ByVal database As String)
           _connection.ConnectionString = "server=" & ip & ";" _
                                    & "user id=" & username & ";" _
                                    & "password=" & pw & ";" _
                                    & "database=" & database
       End Function
    
       Public Function InitializeLogin(ByVal usernametextbox As TextBox, ByVal pwtextbox As TextBox)
           _user = MD5StringHash(usernametextbox.Text)
           _password(0) = MD5StringHash(pwtextbox.Text)
           Try
               _connection.Open()                                                              ' Try to connect
           Catch myerror As MySqlException
               MsgBox("No Connection to the Database!", MsgBoxStyle.Critical, "Fatal Error!")  ' If the person fails to connect
           End Try
           _query = "SELECT * FROM users WHERE username ='" + Replace(_user, " ", "") + "' AND password='" & Replace(_password(0), " ", "") & "'"
           _command.Connection = _connection
           _command.CommandText = _query
    
           _adapter.SelectCommand = _command
           Dim _myData As MySqlDataReader
           _myData = _command.ExecuteReader()                                              ' Start of the query
           If _myData.HasRows Then                                                         ' If the query contains rows ( the password and username were right )
               MsgBox("Logon sucessful!")
               _connection.Close()
               _continue = True
           Else                                                                            ' If username / password are wrong
               MsgBox("Error! Wrong username/password!")
               _continue = False
           End If
       End Function
    
       Public Function InitializeRegister(ByVal usernametextbox As TextBox, ByVal pw1textbox As TextBox, ByVal pw2textbox As TextBox)
           _user = MD5StringHash(usernametextbox.Text)
           _password(0) = MD5StringHash(pw1textbox.Text)
           _password(1) = MD5StringHash(pw2textbox.Text)
           If _password(0) = _password(1) Then                                             ' If the textboxes passwords are the same
               Try
                   _connection.Open()                                                      ' Open the connection
               Catch myerror As MySqlException
                   MsgBox("No connection to the database!", MsgBoxStyle.Critical, "Fatal Error!")
               End Try
    
               Dim myAdapter As New MySqlDataAdapter
               Dim SQLAbfrage As String = "SELECT * FROM users WHERE username='" + _user + "'" ' Query if the user already exists
               Dim _tmp_myCommand As New MySqlCommand
               _tmp_myCommand.Connection = _connection
               _tmp_myCommand.CommandText = SQLAbfrage
    
               myAdapter.SelectCommand = _tmp_myCommand
               Dim myData As MySqlDataReader
               myData = _tmp_myCommand.ExecuteReader()                                                 ' Start query
    
               If myData.HasRows = 0 Then                                                              ' If the username already exists it won't begin with the registration
                   _connection.Close()
                   _connection.Open()
                   Dim registerfinal As New MySqlDataAdapter
                   _tmp_myCommand.CommandText = "INSERT INTO users(username, password)" _
                                        & "VALUES('" & _user & "','" & _password(0) & "')"
                   _tmp_myCommand.ExecuteNonQuery()                                                    ' Start SQL query and insert
                   MsgBox("The account with the name: " & usernametextbox.Text & " was created sucessfully!", MsgBoxStyle.Information, "Yep =)")
                   _connection.Close()
               Else
                   MsgBox("This username does already exist", MsgBoxStyle.Information, "Sorry")
               End If
           Else
               MsgBox("The passwords did not match!", MsgBoxStyle.Critical, "Error!")
           End If
       End Function
    End Class

     

    The rest is quite easy, you just need to set the connection from the class and reference the textboxes.

     

    The register Form should look like this:

    scrn_reg_form7lr2.png

     

    The code for registering is:

    Dim myRegSys As New RegSys
    myRegSys.SetConnectionData("12.345.678.910", "username", "password", "database")
    myRegSys.InitializeRegister(TextBox1, TextBox2, TextBox3)

     

    Put this into the Button Sub! On SetConnectionData replace 12.345.678.910 with your Server ip! Username and password are replaced with your database username and password and database is the database where you created the table.

    Also replace the textboxes with the names of yours. (TextBox1 = username, TextBox2 = password, TextBox3 = Retyped password)

     

    The Login Form should look like this:

    scrn_login_form9b5m.png

     

    The code for logging in is: ( Nearly the same )

    Dim myRegSys As New RegSys
    myRegSys.SetConnectionData("12.345.678.910", "username", "password", "database")
    myRegSys.InitializeLogin(TextBox1, TextBox2)

     

    SetConnectionData will be the same like registering. Also the TextBoxes. (TextBox1 = username, TextBox2 = password)

    If anything is unclear, look at the comments in the class or ask here O.o

     

    Credits: NeoIII for a little but helpfil tip xD and MSDN

     

    So long, have fun!

    Edited by Maxn
    Link to comment
    Share on other sites

    • 3 weeks later...
    Guest
    This topic is now closed to further replies.
     Share

    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...