Login System Mit Rank System

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Haken.

    Login System Mit Rank System

    Hallo Zusammen,
    ich bin gerade dabei eine Windows-Forms Anwendung in VB.NET zu erstellen und habe ein Login System erstellt, welches mit einer MS-SQL Datenbank funktioniert.
    Das System Funktioniert bis dahin auch. Allerdings möchte ich auch, dass beim Anmelden eine Art Zugriffs Rang für das spätere Programm als Variable hinterlegt wird.
    Ich kenne mich mit SQL noch nicht sooo gut aus.
    Bisher sieht es so aus:

    VB.NET-Quellcode

    1. Public Class Loginform
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim connection As New SqlConnection("Server= [cens]; Database = [cens]; user = [cens]; password = [cens]")
    4. Dim command As New SqlCommand("select * from Login where Username = @username and Password = @password And rank = @rank", connection)
    5. command.Parameters.Add("@username", SqlDbType.VarChar).Value = TextBox1.Text
    6. command.Parameters.Add("@password", SqlDbType.VarChar).Value = TextBox2.Text
    7. Dim adapter As New SqlDataAdapter(command)
    8. Dim table As New DataTable()
    9. adapter.Fill(table)
    10. If table.Rows.Count() <= 0 Then
    11. MessageBox.Show("Username Or Password Are Invalid")
    12. Else
    13. Main.Show()
    14. Me.Hide()
    15. End If
    16. End Sub


    Ich habe auf dem SQl-Server bereits eine Spalte "ranks" erstellt.

    Vielen Dank schon einmal

    Haken
    Wie bekomme ich es hin, dass der „Rang“ als Variable Hinterlegt wird? Das genau ist ja mein Problem. Ich möchte nur, das der das Programm den Rang des jeweiligen Gerade angemeldeten Benutzers als Variable speichert. Doch wie? Das ist meine Frage.
    Grüße Haken
    Wenn ich das richtig sehe, dann hast du den Wunsch, dass eine Art Berechtigungssystem bei deinen daten mitläuft. Nun eine Möglichkeit wäre, genau diese Berechtigung (du sprichst hier von Rang) in deiner Datenbank zu hinterlegen. Es sollte dann nicht nur Username und Passwort (verschlüsselt) auf der DB liegen, sondern eben auch die Berechtigungsrolle. Wenn du diese auf der DB hast, kannst du sie nach einem erfolgreichen Login genauso abfragen wie alles andere auch. Und wenn du diese Berechtigung abgefragt hast, kannst du sie ggf. Casten und dann in einer Variablen, die du vorher definieren musst, speichern. Evtl. böte sich hier die Nutzung eines Enums an, um wirklich nur die vorhandenen Rollen wiederzugeben.
    Du solltest diese Berechtigung dann in deinem Login-Bereich abfragen und kannst dann, je nach gesetzter Berechtigung, den Zugriff folgender Abfragen/Funktionen für die entsprechenden Nutzer festlegen.
    Mein Problem besteht eben darin, den zum Nutzernamen gehörenden Rank Abzufragen und dann in die Variable zu speichern.
    ich benötige am ehesten ein Codebsp. Ich kenne mich mit sql Abfragen noch nicht so gut aus.
    Danke trotzdem
    Haken
    Das hast du aber bereits gelöst.
    Dein Sql ruft ja alle Spalten ab, und wenn ranks zur abgerufenen Tabelle gehört, ists natürlich mit dabei.

    achso - kleine Änderung wäre doch nötig:

    VB.NET-Quellcode

    1. Dim command As New SqlCommand("select * from Login where Username = @username and Password = @password", connection)

    Verzeihung, wenn ich mich jetzt blöd anstelle, aber ich kann mir eben noch nicht so richtig vorstellen, wie ich das dann in die Variable schreibe.
    Wie gesagt kenne ich mich noch nicht so gut mit SQL in vb aus.
    Vielen Dank
    Haken