Help Datenbankbefehl einbinden,
Skinner
- asp.net
Hallo,
ich habe ein Problem, und zwar versuche ich schon seit Tagen den Code um eine Datenbank zu öffen und die Werte daraus zu entnehmen und für eine Passwortabfrage zu verwenden. In meinen Code der Vorgibt welche Werte gefragt sind einzufügen.
Hier die beiden Code´s
1.
<%@ LANGUAGE = "VBScript" %>
<%Response.Buffer = TRUE
Eing_User = Request.Form("username")
Eing_PW = Request.Form("passwort")
set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.open "benutzer"
SQL = "SELECT * FROM login"
SQL = SQL+ " WHERE (((login.User)= '" + Eing_user + "')"
SQL = SQL+ " AND ((login.Passwort)= '" + Eing_PW + "'))"
Liste = dbConnection.Execute(SQL)
If Not Liste.EOF And Not Liste.BOF Then Response.Redirect(Liste("URL"))Else Response.Redirect("wrong.html")End If
dbConnection.Close()%>
2.
<%
Option Explicit
Response.Buffer = True
Const strThisRealm = "AspHeute Secure Area"
Dim strUName, strPwd, strTargetPage
GetAuthInfo strUName, strPwd
If "" = strUName And "" = strPwd Then
RequestAuthentication strThisRealm
Response.End
End If
If "administrator" = strUName And "passwort" = strPwd Then
Session("SecArea_LoginGranted") = True
strTargetPage = Session("IntendedTarget")
' check: no infinite loops please!
If ("" = strTargetPage Or _
LCase(strTargetPage) = LCase(Request.ServerVariables("SCRIPT_NAME"))) Then
strTargetPage = "default.asp"
End If
Response.Redirect strTargetPage
Response.End
Else
RequestAuthentication strThisRealm
Response.End
End If
%>
Und zwar möchte ich das 1. sich in 2. einfügt, damit ich nicht mehr die statischen Benutzernamen und Passwörter habe, sondern das diese nach der Eingabe von dem Benutzer über die Datenbank verglichen werden und der Benutzer nach erfolgreicher Eingabe zu den internen Seiten weitergeschleust wird.
Dies ist mir bisher nicht gelungen und ich finde auch keine Lösung auf dieses Problem, muss dazu gestehen das meine Programmierkenntnisse in diesem Bereich nicht besonders sind.
Bitte um Antwort da ich mit meinem eigenen Wissen nicht weiter komme.
Mfg
Skinner
Hi,
ich habe ein Problem, und zwar versuche ich schon seit Tagen den Code um eine Datenbank zu öffen und die Werte daraus zu entnehmen und für eine Passwortabfrage zu verwenden. In meinen Code der Vorgibt welche Werte gefragt sind einzufügen.
Um was für eine Datenbank geht es denn? Access?
<%@ LANGUAGE = "VBScript" %>
<%Response.Buffer = TRUE
Eing_User = Request.Form("username")
Eing_PW = Request.Form("passwort")
set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.open "benutzer"
was ist das? Eine Access-DB kannst du z.B. so öffnen:
set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")
SQL = "SELECT * FROM login"
SQL = SQL+ " WHERE (((login.User)= '" + Eing_user + "')"
SQL = SQL+ " AND ((login.Passwort)= '" + Eing_PW + "'))"
Liste = dbConnection.Execute(SQL)
Dann würde ich so weitermachen:
Set rst = Server.CreateObject("ADODB.Recordset")
SQL = "..."
rst.Open SQL, dbConnection
If Not rst.EOF Then
Response.Redirect(rst("URL"))
Else
Response.Redirect("wrong.html")
End If
dbConnection.Close()%>
Ich hoffe, das hilft dir erstmal!
Gruß
Stefan
Ja es ist eine Access Datenbank, da liegst Du vollkommen richtig.
Zu dem weiteren Code danke ersteinmal, aber besteht von Deiner Seite die Möglichkeit den Datenbank Code in meinen 2 Code einzubinden???
Mfg
Skinner
Hi,
ich habe ein Problem, und zwar versuche ich schon seit Tagen den Code um eine Datenbank zu öffen und die Werte daraus zu entnehmen und für eine Passwortabfrage zu verwenden. In meinen Code der Vorgibt welche Werte gefragt sind einzufügen.
Um was für eine Datenbank geht es denn? Access?
<%@ LANGUAGE = "VBScript" %>
<%Response.Buffer = TRUE
Eing_User = Request.Form("username")
Eing_PW = Request.Form("passwort")
set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.open "benutzer"
was ist das? Eine Access-DB kannst du z.B. so öffnen:
set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")
SQL = "SELECT * FROM login"
SQL = SQL+ " WHERE (((login.User)= '" + Eing_user + "')"
SQL = SQL+ " AND ((login.Passwort)= '" + Eing_PW + "'))"
Liste = dbConnection.Execute(SQL)
Dann würde ich so weitermachen:
Set rst = Server.CreateObject("ADODB.Recordset")
SQL = "..."
rst.Open SQL, dbConnection
If Not rst.EOF Then
Response.Redirect(rst("URL"))
Else
Response.Redirect("wrong.html")
End If
dbConnection.Close()%>
Ich hoffe, das hilft dir erstmal!
Gruß
Stefan
Hi,
Zu dem weiteren Code danke ersteinmal, aber besteht von Deiner Seite die Möglichkeit den Datenbank Code in meinen 2 Code einzubinden???
eventuell schon, allerdings müsste ich genauer wissen, was du eigentlich machen willst. Ich fasse mal zusammen, was ich soweit verstanden habe:
Du hast eine Access-DB mit einer Tabelle Login.
Darin befinden sich Benutzername, Passwort, URL.
Es gibt eine HTML-Formular, in dem der Benutzer Benutzername und Passwort einträgt und abschickt.
Mittels VB-Script vergleichst du die Einträge im Formular mit der den Einträgen in der DB.
Wenn der Eintrag gefunden wird, wird der Benutzer zur entsprechenden URL weitergeleitet, falls nicht, wird die Seite wrong.html aufgerufen.
Soweit funktioniert wohl Teil 1. Was soll denn noch passieren?
Damit die Seiten nicht über direkte Eingabe der URL aufgerufen werden können, kannst du eine Sessionvariable einführen, diese beim Login setzen, und diese zu Beginn der geschützten Seiten abfragen, um entsprechend zu reagieren zu können.
Gruß
Stefan
Hallo,
alles was Du geschrieben hast, ist richtig.
Nur ist der Code mit der Tabelle ein Fragment einer anderen "alten" Lösung,
bei dem Code 2. ist nur ein fester Wert gegeben (administrator/passwort),
Anstatt der vielen Werte gegeben durch die gefüllte Tabelle die in Code 1. stehen.
Nun möchte ich nur die Funktion von Code 1. in Code 2. einfügen, damit ich auch dort die Abgefragten Information aus dem Login- Bildschirm benutzen kann, es handelt sich dabei allerdings nicht um ein Formular sondern um ein IIS Benutzer/Passwort Screen (wie bei einer Netzwerkanmeldung).
Bekomme dieses aber nicht wirklich gebacken.
Bitte nicht verzweifeln, das bin ich schon :)
Mfg
Skinner
Soweit funktioniert wohl Teil 1. Was soll denn noch passieren?
Damit die Seiten nicht über direkte Eingabe der URL aufgerufen werden können, kannst du eine Sessionvariable einführen, diese beim Login setzen, und diese zu Beginn der geschützten Seiten abfragen, um entsprechend zu reagieren zu können.
Gruß
Stefan
Hi,
Nun möchte ich nur die Funktion von Code 1. in Code 2. einfügen, damit ich auch dort die Abgefragten Information aus dem Login- Bildschirm benutzen kann, es handelt sich dabei allerdings nicht um ein Formular sondern um ein IIS Benutzer/Passwort Screen (wie bei einer Netzwerkanmeldung).
ich versuch es mal, allerdings ist einiges geraten.
Probier folgenden Code mal aus:
<%
Option Explicit
Response.Buffer = True
Const strThisRealm = "AspHeute Secure Area"
Dim strUName, strPwd, strTargetPage
GetAuthInfo strUName, strPwd
set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")
SQL = "SELECT * FROM login " & _
"WHERE User = '" & strUName & "' AND " & _
" Passwort = '" & strPwd & "'"
Set rst = Server.CreateObject("ADODB.Recordset")
rst.Open SQL, dbConnection
If Not rst.EOF Then
Session("SecArea_LoginGranted") = True
Session("IntendedTarget") = rst("URL")
strTargetPage = Session("IntendedTarget")
' check: no infinite loops please!
If ("" = strTargetPage Or _
LCase(strTargetPage) = LCase(Request.ServerVariables("SCRIPT_NAME"))) Then
strTargetPage = "default.asp"
End If
Response.Redirect strTargetPage
Response.End
Else
strTargetPage = "wrong.html"
Response.Redirect strTargetPage
Response.End
End If
%>
Gruß
Stefan
Hi,
nach verwenden des Code´s erhalte ich folgende Fehlermeldung.
Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
Syntaxfehler
/iisHelp/common/500-100.asp, line 160
elseIf (objASPError.Description > "") Then
^
Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
Variable ist nicht definiert: 'GetAuthInfo'
/login/login.asp, line 8
was kann das sein???
Mfg
Skinner
Hi,
Nun möchte ich nur die Funktion von Code 1. in Code 2. einfügen, damit ich auch dort die Abgefragten Information aus dem Login- Bildschirm benutzen kann, es handelt sich dabei allerdings nicht um ein Formular sondern um ein IIS Benutzer/Passwort Screen (wie bei einer Netzwerkanmeldung).
ich versuch es mal, allerdings ist einiges geraten.
Probier folgenden Code mal aus:
<%
Option Explicit
Response.Buffer = True
Const strThisRealm = "AspHeute Secure Area"
Dim strUName, strPwd, strTargetPage
GetAuthInfo strUName, strPwd
set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\test\test.mdb")
SQL = "SELECT * FROM login " & _
"WHERE User = '" & strUName & "' AND " & _
" Passwort = '" & strPwd & "'"
Set rst = Server.CreateObject("ADODB.Recordset")
rst.Open SQL, dbConnection
If Not rst.EOF Then
Session("SecArea_LoginGranted") = True
Session("IntendedTarget") = rst("URL")
strTargetPage = Session("IntendedTarget")
' check: no infinite loops please!
If ("" = strTargetPage Or _
LCase(strTargetPage) = LCase(Request.ServerVariables("SCRIPT_NAME"))) Then
strTargetPage = "default.asp"
End If
Response.Redirect strTargetPage
Response.End
Else
strTargetPage = "wrong.html"
Response.Redirect strTargetPage
Response.End
End If
%>
Gruß
Stefan
Hi
nach verwenden des Code´s erhalte ich folgende Fehlermeldung.
Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
Syntaxfehler
/iisHelp/common/500-100.asp, line 160
elseIf (objASPError.Description > "") Then
^
Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
Variable ist nicht definiert: 'GetAuthInfo'
/login/login.asp, line 8
was kann das sein???
GetAuthInfo ist eine Funktion, die irgendwo in deinem Script definiert sein müsste.
Wenn nicht ersetze mal die Zeile
GetAuthInfo strUName, strPwd
durch
strUName = Request.ServerVariables("AUTH_USER")
strPwd = Request.ServerVariables("AUTH_PASSWORD")
Hast du das Script Teil 2 schon mal korrekt zum Laufen gebracht?
Gruß
Stefan
Hi,
ja beide Skripte sind selbständig am Laufen.
Mfg
Skinner
Hi
nach verwenden des Code´s erhalte ich folgende Fehlermeldung.
Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
Syntaxfehler
/iisHelp/common/500-100.asp, line 160
elseIf (objASPError.Description > "") Then
^
Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
Variable ist nicht definiert: 'GetAuthInfo'
/login/login.asp, line 8
was kann das sein???
GetAuthInfo ist eine Funktion, die irgendwo in deinem Script definiert sein müsste.
Wenn nicht ersetze mal die Zeile
GetAuthInfo strUName, strPwd
durch
strUName = Request.ServerVariables("AUTH_USER")
strPwd = Request.ServerVariables("AUTH_PASSWORD")
Hast du das Script Teil 2 schon mal korrekt zum Laufen gebracht?
Gruß
Stefan
Nachdem ich GetAuthInfo gegen die Zeilen ausgetauscht habe, bekomm ich die Fehlermeldung:
Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
Syntaxfehler
/iisHelp/common/500-100.asp, line 160
elseIf (objASPError.Description > "") Then
^
Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
Variable ist nicht definiert: 'dbConnection'
/login/login.asp, line 11
was kann nun passiert sein???
Mfg
Skinner
Hi,
ja beide Skripte sind selbständig am Laufen.
Mfg
Skinner
Hi
nach verwenden des Code´s erhalte ich folgende Fehlermeldung.
Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
Syntaxfehler
/iisHelp/common/500-100.asp, line 160
elseIf (objASPError.Description > "") Then
^
Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
Variable ist nicht definiert: 'GetAuthInfo'
/login/login.asp, line 8
was kann das sein???
GetAuthInfo ist eine Funktion, die irgendwo in deinem Script definiert sein müsste.
Wenn nicht ersetze mal die Zeile
GetAuthInfo strUName, strPwd
durch
strUName = Request.ServerVariables("AUTH_USER")
strPwd = Request.ServerVariables("AUTH_PASSWORD")
Hast du das Script Teil 2 schon mal korrekt zum Laufen gebracht?
Gruß
Stefan
Guten Morgen,
Nachdem ich GetAuthInfo gegen die Zeilen ausgetauscht habe, bekomm ich die Fehlermeldung:
Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
Syntaxfehler
/iisHelp/common/500-100.asp, line 160
elseIf (objASPError.Description > "") Then
^
Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
Variable ist nicht definiert: 'dbConnection'
/login/login.asp, line 11
was kann nun passiert sein???
Wir haben keine Variablen deklariert, obwohl da im Script Option Explicit drüber steht. Schmeiss Option Explicit mal raus;-)
Gruß
Stefan
Jo Guten Morgen,
hab es nun, :)
nur hab ich jetzt das Problem, das wenn ich eine Seite habe die angesurft wird, wo ich durch ein Include überprüfe ob der User sich angemeldet hat,
dieser dann auf die Login- Seite geleitet wird, er sich anmeldet und nach der Eingabe eigentlich auf die Url geschoben werden soll, die für Ihn wichtig ist,
diese natürlich auch abgesichert ist, wird er wieder auf das Login geschoben, wie geb ich dem Code nun bekannt das das Login bereits "True" war und kein weiteres Login notwendig ist????
Mfg
Skinner
Ps. Stefan Du bist mir eine große Hilfe danke ;-)
Guten Morgen,
Nachdem ich GetAuthInfo gegen die Zeilen ausgetauscht habe, bekomm ich die Fehlermeldung:
Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'
Syntaxfehler
/iisHelp/common/500-100.asp, line 160
elseIf (objASPError.Description > "") Then
^
Laufzeitfehler in Microsoft VBScript- Fehler '800a01f4'
Variable ist nicht definiert: 'dbConnection'
/login/login.asp, line 11
was kann nun passiert sein???
Wir haben keine Variablen deklariert, obwohl da im Script Option Explicit drüber steht. Schmeiss Option Explicit mal raus;-)
Gruß
Stefan
Hi,
hab es nun, :)
es läuft, cool!
nur hab ich jetzt das Problem, das wenn ich eine Seite habe die angesurft wird, wo ich durch ein Include überprüfe ob der User sich angemeldet hat,
dieser dann auf die Login- Seite geleitet wird, er sich anmeldet und nach der Eingabe eigentlich auf die Url geschoben werden soll, die für Ihn wichtig ist,
diese natürlich auch abgesichert ist, wird er wieder auf das Login geschoben, wie geb ich dem Code nun bekannt das das Login bereits "True" war und kein weiteres Login notwendig ist????
Verwende eine Sessionvariable und frage diese in deinem include ab. Soweit ich mich erinnere, wird doch bereits eine benutzt:
Session("SecArea_LoginGranted")
Wie ich das verstanden habe ist sie true, wenn das login erfolgreich war, andernfalls false.
Sessionvariablen legst du im übrigen in der global.asa fest.
Grüße
Stefan