Mehrere User im Login

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von zorroot.

    Mehrere User im Login

    Guten tag,
    ich habe ein Login portal zum anmelden und account erstellung..

    ich habe es nun so weit das wenn sich ein user registriert das sein account in eine .txt gespeichert wird und der user sich im Login portal einloggen kann.

    Mein problem ist jetz es werden sich mehrere user registrieren und anmelden wollen...

    sobald ich dann nochein account anlegen möchte überschreibt der neue account den alten und der alte account kann sich nicht mehr einloggen.

    bitte um hilfe..

    Der Erstell Button

    Quellcode

    1. Dim User As New TextBox
    2. Dim Pass As New TextBox
    3. If System.IO.File.Exists("Pfad zur .txt") And System.IO.File.Exists("Pfad zur .txt") Then
    4. Dim cre As New OpenFileDialog
    5. cre.FileName = ("Pfad zur .txt")
    6. Dim cres As New System.IO.StreamReader(cre.FileName)
    7. User.Text = cres.ReadToEnd
    8. cres.Close()
    9. cre.FileName = ("Pfad zur .txt")
    10. Dim cres2 As New System.IO.StreamReader(cre.FileName)
    11. Pass.Text = cres2.ReadToEnd
    12. cres2.Close()
    13. Else
    14. System.IO.File.Create("Pfad zur .txt")
    15. System.IO.File.Create("Pfad zur .txt")
    16. End If
    17. If TextBox1.Text = User.Text And TextBox2.Text = Pass.Text Then
    18. Form.Show()
    19. End If


    Der Login Button

    Quellcode

    1. Dim User As New TextBox
    2. Dim Pass As New TextBox
    3. If TextBox1.Text = "Admin" And TextBox2.Text = "Admin" Then
    4. Adminlagerorte.Show()
    5. Me.Hide()
    6. End If
    7. If System.IO.File.Exists("Pfad zur .txt") And System.IO.File.Exists("Pfad zur .txt") Then
    8. Dim cre As New OpenFileDialog
    9. cre.FileName = ("Pfad zur .txt")
    10. Dim cres As New System.IO.StreamReader(cre.FileName)
    11. User.Text = cres.ReadToEnd
    12. cres.Close()
    13. cre.FileName = ("Pfad zur .txt")
    14. Dim cres2 As New System.IO.StreamReader(cre.FileName)
    15. Pass.Text = cres2.ReadToEnd
    16. cres2.Close()
    17. Else
    18. System.IO.File.Create("Pfad zur .txt")
    19. System.IO.File.Create("Pfad zur .txt")
    20. End If
    21. If TextBox1.Text = User.Text And TextBox2.Text = Pass.Text Then
    22. Form.Show()
    23. End If

    kevinbusy schrieb:

    überschreibt der neue account den alten
    Dann lefge die Anmelde-Information nicht in einer .Text an, sondern in einer DataTable, wo Du beliebig Datensätze anhängen editieren und löschen kannst.
    Speichern und Laden kannst Du die jeweils in einem Einzeiler.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Sowas in der Art denke ich, als Speichermedium eine Datenbank verwenden.

    In Form1 ganz oben einfügen:

    VB.NET-Quellcode

    1. Imports System.Data.OleDb
    2. Imports System.Data.OleDb.OleDbDataAdapter


    Und das direkt in der Form ablegen.

    VB.NET-Quellcode

    1. Dim provider As String
    2. Dim dataFile As String
    3. Dim connString As String
    4. Dim myConnection As OleDbConnection = New OleDbConnection


    Zeigt ein Beispiel für das Erstellen eines Users. Textboxen für Usernamen / Passwort.

    Dieser Befehl liegt auf einem Button, wer die Werte aus den jeweiligen Textboxen übernimmt und in die DB Schreibt.

    VB.NET-Quellcode

    1. Dim vor As String = xxx.Text
    2. Dim data1 As String = user.Text
    3. Dim data2 As String = pass.Text
    4. Using dbConn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= DB.mdb")
    5. dbConn.Open()
    6. Dim strSql = "INSERT INTO [benutzer] (user, pass) VALUES ('" & benutzername.Text & "','" & passwort.Text & "')"
    7. Using objcmd = New OleDbCommand(strSql, dbConn)
    8. objcmd.Parameters.AddWithValue("@user", benutzername)
    9. objcmd.Parameters.AddWithValue("@pass", passwort)
    10. objcmd.ExecuteNonQuery()
    11. End Using
    12. MessageBox.Show("Mitarbeiterdatensatz wurde angelegt")


    Und der Login:

    VB.NET-Quellcode

    1. provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
    2. 'Hier sind die Verbindungsdaten
    3. dataFile = "C:\beispiel\DB.mdb"
    4. connString = provider & dataFile
    5. myConnection.ConnectionString = connString
    6. myConnection.Open()
    7. 'Die Abfrage an Access:
    8. Dim cmd As OleDbCommand = New OleDbCommand("SELECT user, pass FROM [benutzer] WHERE [user] = '" & benutzer.Text & "' AND [pass] = '" & passwort.Text & "'", myConnection)
    9. Dim dr As OleDbDataReader = cmd.ExecuteReader
    10. Dim userFound As Boolean = False
    11. While dr.Read
    12. userFound = True
    13. End While
    14. If userFound = True Then
    15. Form2.Show()
    16. Me.Close()
    17. End If
    18. myConnection.Close()


    Die Xe sind die jeweiligen Werte die übernommen werden sollen.

    Bin aber kein Profi, daher kann es nicht optimal sein ^^

    In der Datenbank kannst du nun User erstellen. Du kannst auch eine Maske erstellen um User anzulegen & zu bearbeiten oder zu löschen.

    Hier das Beispiel in der .zip Datei. Ordner beispiel (auf C legen dort ist die Datenbank drin) und der Projektordner beispiel in dein VBProjekte Ordner. Öffnen in VB und ansehen :D User admin und das Passwort auch admin.
    Dateien
    • beispiel.zip

      (98,12 kB, 88 mal heruntergeladen, zuletzt: )
    Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

    Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „chenjung“ ()

    @kevinbusy
    Der von dir vorgelegte Quellcode greift niemals schreibend auf die Datei zu. Sie wird entweder geöffnet oder neu angelegt. Was beim neu anlegen aber tatsächlich geschieht (welche Daten also tatsächlich geschrieben werden !), fehlt in deinem Quellcode.

    ​Wenn du eine Datei schreibst, mußt du zuerst die alten Daten schreiben und dann die neuen. Ganz früher gab es daher mal Dateizugriffe mit Read, Write und Append.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „zorroot“ ()