Benutzer und Passwort aus DB abfragen
Uwe
- asp.net
0 mo0 Frank aus Ulm0 Uwe
Ich möchte eine Login-Seite gestalten, bei der ein Benutzername und ein Kennwort abgefragt werden. Diese Daten sollen in einer DB überprüft werden. Sind die Daten vorhanden so erhält man Zugang zu einer bestimmten Seite. Sind Benutzername und Kennwort nicht enthalten wird man wieder auf die Login-Seite geleitet. Wer kann mir dabei behilflich sein. Im Moment hab ich folgenden COde welcher auch funktioniert. Das Problem ist nur das die Session Daten nirgends gespeichert werden, und ich nach Abschluß einer Aktion (z.b. Aufnahme von Daten) ich erneut auf die Login-Seite geleitet werde.
Bitte gebt mir ein paar Tips, wenn möglich detailiert.
Ich möchte eine Login-Seite gestalten, bei der ein Benutzername und ein Kennwort abgefragt werden.
Hi
probiers mal hiermit:
http://www.f078.net/php/tutorial/php/php_140902.php
Hab ich auf manchen meiner Seiten mit Erfolg eingesetzt. Echt gut.
Gruß
MO
Hi, hallo
sehr weiser Rat ... er hat sicher ASP als Topic gewählt, wenn er mit PHP arbeiten will. Wer lesen kann ist klar im Vorteil.
Zu Uwe:
was meinst du mit "folgenden Code" ?
Evt. ist bei deiner Website der Session-Modus nicht eingeschaltet oder du läßt im Browser keine Cookies zu. ASP vergibt einen Sitzungscookie, der während der Sitzung die Sitzungs-ID (SessionID) speichert, damit der Surfer zuordbar bleibt.
Du benutzt sicherlich den IIS v4 oder 5 oder höher. ??
Tschau, tschüß,
Frank
Hi, hallo
sehr weiser Rat ... er hat sicher ASP als Topic gewählt, wenn er mit PHP arbeiten will. Wer lesen kann ist klar im Vorteil.
Zu Uwe:
was meinst du mit "folgenden Code" ?
<%
set conn = Server.CreateObject("ADODB.Connection")
set login = Server.CreateObject("ADODB.Recordset")
conn.Open("tbl_passwort")
name = Request.Form("Name")
passwort = Request.Form("Passwort")
zugang = false
sql= "Select * from tbl_passwort where name = '" & Name & "' and passwort ='" & passwort & "'"
login.open sql, Conn %>
<%
If login.Bof and login.eof then
Response.Redirect "fehlermeldung.htm"
Else
status="ok"
end if
%>
Das ist der COde den ich gemeint habe. Bisher habe ich noch keine Session-ID eingebaut. Wo muss ich welchen COde einbinden? Danke für eure Hilfe.
Frank hat das richtig erkannt. Bitte um eine Antwort mit ASP.
Evt. ist bei deiner Website der Session-Modus nicht eingeschaltet oder du läßt im Browser keine Cookies zu. ASP vergibt einen Sitzungscookie, der während der Sitzung die Sitzungs-ID (SessionID) speichert, damit der Surfer zuordbar bleibt.
Du benutzt sicherlich den IIS v4 oder 5 oder höher. ??
Tschau, tschüß,
Frank
Hi, hallo
set conn = Server.CreateObject("ADODB.Connection")
set login = Server.CreateObject("ADODB.Recordset")
conn.Open("tbl_passwort")
was ist "tbl_passwort" ???
die Connection öffnet man mit einem ConnectionString:
z.b. cnString = "Provider=Microsoft.Jet.OleDB.4.0;data source=c:\db.mdb;user id=admin"
oder: cnString = "dsn=UserDatenbank"
conn.open cnString
für eine einfache Authentifizierung via Sessions benötigst du eine Variable, die in der Session gespeichert wird und angibt, ob der Zugriff okay geht:
Session("loggedin") = "ja"
Am Anfang jedes ASP Scripts (bevor irgendwas anzeigbare an den Browser gesendet wird) brauchst du dann eine Überprüfung dieser Variable
IF Session("loggedin") <> "ja" THEN
Response.Redirect "login.asp"
END IF
das bindest du mit <!-- #include file="usercheck.asp" --> ein
wenn du deine Angaben hier überprüfst:
sql= "Select * from tbl_passwort where name = '" & Name & "' and passwort ='" & passwort & "'"
login.open sql, Conn %>
<%
If login.Bof and login.eof then
Response.Redirect "fehlermeldung.htm"
Else
status="ok"
end if
%>
musst du einfach in dieses IF ... END IF einfügen, daß die Session-Variable ihren passenden Wert erhält.
.EOF reicht imho in 99% der Fälle aus (spart ein paar Zeichen Tipparbeit)
außerdem solltest du nicht AND sondern OR für EOF or BOF verwenden.
WICHTIG: Response.Redirect funzt nur, wenn vorher nichts an den CLient zurückgeschickt wurde also HTML, <%=... %> oder Response.Write Sachen. Sonst Fehler!
Mit den Infos hier solltest du dein Problem bewältigen können. Ich würde dir aber mal empfehlen, dich mit elementaren Dingen in ASP (Server,Application,Session,Response,Request) auseinanderzusetzen.
Aus Gründen der Sicherheit solltest du noch auf "SQL Injection" bei deinem Login-Formular achten. Infos findest du dazu unter www.aspheute.com.
Tschau, tschüß,
Frank