Laden...

ASP.net Login

Erstellt von King-Malkav vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.405 Views
King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 17 Jahren
ASP.net Login

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

N
4.644 Beiträge seit 2004
vor 17 Jahren

ASP.NET 1.1 oder 2.0? Denn 2.0 bringt eine komplette Benutzerverwaltung schon mit.

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 17 Jahren

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

MFG

M
7 Beiträge seit 2005
vor 17 Jahren
anmeldung

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

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 17 Jahren

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

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 17 Jahren

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


N
4.644 Beiträge seit 2004
vor 17 Jahren

ExecuteScalar verwenden und mal in die Doku schauen.

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 17 Jahren

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

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 17 Jahren

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

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 17 Jahren

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