Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ASP.net Login
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

ASP.net Login

beantworten | zitieren | melden

Hallo nochmal,

ich arbeite gerade an einer Hardwareverwaltungsanwendung in ASP.net. Natürlich braucche ich dafür eine Anmledung da ja nicht jeder willenlos in der DB rumschreiben soll.

Ich habe eine MD5 verschlüsselung eingebaut die ich dann in der DB abfrage. Mein Problem ist nur das wenn man jetzt z.B. die seite direkt im Browser anspricht z.B. /ASPanwendung/Verwaltung.aspx kann man sich noch an dem login vorbeimogeln.

Ich habe an die SessionID gedacht, dass diese beim Login auf 1 gesetzt wird und bei jedem redirect abgefragt wird und sollte diese 0 sein man direkt auf das Login geworfen wird.

Da ich aber noch nie eine Webanwendung mit DB Anmeldung geschrieben habe bin ich im Moment recht ratlos. Es soll auch mit Cookies gehen, die Frage ist nur was davon ist besser und einfacher umzusetzen - und vorallem wie setze ich es um.

Danke schonmal für die Hilfe.

MFG
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

ASP.NET 1.1 oder 2.0? Denn 2.0 bringt eine komplette Benutzerverwaltung schon mit.
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Hi, da ich VS2003 verwende ist es leider noch ASP.net 1.1

MFG
private Nachricht | Beiträge des Benutzers
manolo
myCSharp.de - Member



Dabei seit:
Beiträge: 7

anmeldung

beantworten | zitieren | melden

du könntest in der login seite in der Session variable einen wert setzten zb login und den auf den nachfolgenden seiten abfragen ist der wert gesetzt passiert nichts wenn er nicht gesetzt ist (vorsicht dann is er null) dann machst einen redirect auf die login.aspx

wär so mein vorschlag

mfg
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

währe eine Idee, hab auch schon etwas mit den SessionObjekten rumgespielt, aber wie mach ich da nen refresh auf das Sessionobjekt, falls der User mal 1 Minute lang nix tut, soll er nicht gleich rausgeworfen werden.

Und vorallem wie verhindere ich das sich ein User mehrfach anmeldet?

MFG
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Hab ein erneutes Problem und zwar bekomme ich als return wert von der db immer -1.

Egal ob das Kennwort übereinstimmt oder nicht. Was mach ich falsch? Laut SQL Profiler funzt die MD5 umwandlung da er den Korrekten Wert in der select Anweißung stehen hat.

Hier noch mein Code

 
private void Login_BT_Click(object sender, System.EventArgs e)
		{
		string pass = Password2.Value.ToString();
		string md5;
		string user = Benutzernamen.Text.ToString();
			
			MyMD5Class md5hash = new MyMD5Class();
			md5	= md5hash.MD5Hashstring(pass).ToString();
			int zeilen = passhash(md5,user);
			LB_status.Text = zeilen.ToString();
			
		}
		
		#region Passwort Hash auslesen

		private int passhash(string hash, string user)

		{
		int zeilen;
			try
			{
				sqlcon1.Open();
				string sqlcmd = "SELECT Passwort FROM pass WHERE Passwort = '"+ hash +
				"' AND Username = '" + user + "'";
				SqlCommand myselect = new SqlCommand(sqlcmd, sqlcon1);
				zeilen = myselect.ExecuteNonQuery();
			}
			finally
			{
				sqlcon1.Close();
			}
					
		return zeilen;
		}
		#endregion

private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

ExecuteScalar verwenden und mal in die Doku schauen.
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von Noodles
ExecuteScalar verwenden und mal in die Doku schauen.

ExecuteScalar hab ich schon verwendet, dass funktioniert auch, solang man kein falschen Benutzername oder falsches Passwort angibt.

Aber ich mache es jetzt mit einem Update und lass einen Timestamp aktuallisieren. Dann bekomm ich auch mit dem ExecuteNonQuery ein Ergebnis mit dem ich was anfangen kann.

MFG
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Ich hab mal ne Frage.

Das Passwortfeld in dem das Passwort des users steht, wird dieses unverschlüsselt an den Webserver geschickt?

Ich lasse den Feldinhalt in eine Variable schreiben und das Feld danach löschen. Dann übergebe ich das Passwort an meine MD5 Klasse und lasse das Passwort verschlüsseln. Dieses gleiche ich mit der DB ab.

Nur leider bringt das ganze nichts, wenn das Passwort im Klartext an den Webserver geht.
Wenn ich die ID des Passwortfeldes rausnehme dann wird das Feld generell nicht an den Webserver gesendet, aber dann kann ich auch das Feld nicht mehr über C# ansprechen.

MFG
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Kann mir niemand helfen?
Es muss doch möglich sein ein sicheres Login mit ASP.net und C# zubauen.

Kann ich in meinem C# Code auf ein HTML feld ohne ID (nur mit Namen) zugreifen?

MFG
private Nachricht | Beiträge des Benutzers