Login für Anfänger

Radhad

Erfahrenes Mitglied
Hallo zusammen!

Ich habe im Rahmen meines Praktikums ein Projekt bekommen, wo Kunden sich auf einer Seite einloggen können sollen um dann ein paar Funktionen machen zu können. Ich bin gerade dabei die Login-Seite zu schreiben. Die Weiterleitung auf die nächste Seite geht auch schon. Nur habe ich keine Ahnung, wie ich die Überprüfung mache, wo ich die eingegebene ID und das Passwort mit der Datenbank vergleiche. Ich habe schon nach einem Beispiel gesucht, bin aber nicht fündig geworden, ebenso das Buch, welches ich hier habe, hilft mir nicht wirklich weiter (vor allem lerne ich da nicht gut mit). Könnte mir das jemand erklären, wie das geht?

Achja, ich arbeite mit UserControls, ich weiß nicht, inwieweit das dafür wichtig ist.


MfG Radhad
 
Zuletzt bearbeitet:
Danke für den Link, schaue ich diekt mal rein.

Arbeite auch mit VB.NET und dem MS SQL Server 2000... Das was bisher läuft hat mir ein Mitarbeiter gezeigt, aber ich glaub so richtig verstanden hab ich es noch nicht, auch wenn ich weiß was wo passiert.


MfG Radhad
 
Mit etwas Hilfe geht jetzt der Login, allerdings stellt sich noch die Frage, wie ich das DataSet überprüfen kann, wenn der Eintrag nicht vorhanden ist, dass ich das abfange und eine Fehlermeldung ausgebe.


MfG Radhad
 
Original geschrieben von Radhad
Mit etwas Hilfe geht jetzt der Login, allerdings stellt sich noch die Frage, wie ich das DataSet überprüfen kann, wenn der Eintrag nicht vorhanden ist, dass ich das abfange und eine Fehlermeldung ausgebe.


MfG Radhad

Du hast das DataSet wohl vorher mit der Tabelle gefüllt, wo die LoginDaten gespeichert sind. Dann überprüfe es doch so:

Code:
foreach (DataRow r in DataSet.Tables["Tabelle"].Rows)
	{
		if ((r["SpaltemitUsername"].ToString() == TextBoxUsername.Text) && (r["SpaltemitPassword"].ToString() == TextBoxPassword.Text)))
	{
					FormsAuthentication.RedirectFromLoginPage(TextBoxUsername.Text,false/true);
	}
        else
	{
		Label.Text = "Falscher Username oder falsches Passwort";
	}

// EDIT: Du arbeitest zwar mit VB.NET und der CODE ist C#, aber die Vorgehensweise sollte doch fast die gleiche sein :)
 
Zuletzt bearbeitet:
Werde ich am Montag ausprobieren.
Den C# Code kann ich lesen und in VB.NET umsetzen ;)
Danke für deinen Beitrag!


MfG Radhad
 
Also ich benutze immer diesen Code wobei ich einen Button definiert habe (btnLogin) und natürlich die Textfelder für den Benutzernamen (tbxName) und für das Passwort (tbxPasswort). Dies vergleiche ich mit parametrisierten Abfragen mit einem SQL-Server (die SQL-Connection habe ich global in der Web.config in den AppSettings definiert und lese die vorm Page.Load noch ein). Sollte der Login falsch sein gibt es da noch ein Literal (litError) welches ich auf visible = false gesetzt habe am Anfang was sich dann meldet.

Ganz zum Schluss speicher ich noch ein paar Logindaten von jedem Versuch sich einzuloggen und nutze die formularbasierte Authentifizierung. Funktioniert so hervorragend und bisher hat sich noch jeder die Zähne dran ausgebissen ;).

Voraussetzung ist natürlich auch die richtige Konfiguration in der web.config

Code:
Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click

		Dim bolcheck As Boolean = False
		cnn.Open()
		Dim cmd As SqlCommand = New SqlCommand("SELECT nick_id, nick_passwort FROM all_nick WHERE nick_name=@name", cnn)
		cmd.Parameters.Add("@name", tbxname.Text)
		Dim strNickid As String = ""
		Dim dr As SqlDataReader = cmd.ExecuteReader
		Do While dr.Read
			If dr.Item("nick_passwort") = tbxPasswort.Text Then
				bolcheck = True
			End If
			strNickid = dr.Item("nick_id")
		Loop
		dr.Close()
		dr = Nothing

		Dim strIP As String = Request.UserHostAddress
		Dim strHost As String = Request.UserHostName

		cmd = New SqlCommand("INSERT INTO all_log (log_ip, log_host, log_nick, nick_id, log_passwort, log_Datum) VALUES(@IP, @Host, @Nick, @ID, @Passwort, @Datum)", cnn)
		cmd.Parameters.Add("@IP", strIP)
		cmd.Parameters.Add("@Host", strHost)
		cmd.Parameters.Add("@Nick", tbxManagername.Text)
		cmd.Parameters.Add("@ID", strNickid)
		cmd.Parameters.Add("@Passwort", tbxPasswort.Text)
		cmd.Parameters.Add("@Datum", Date.Now.ToString)
		cmd.ExecuteNonQuery()

		cnn.Close()
		cmd = Nothing


		If bolcheck = True Then
			FormsAuthentication.SetAuthCookie(tbxManagername.Text, False)
			Response.Redirect("nextside.aspx")
		Else
			litError.Visible = True
		End If

	End Sub
 
Zurück