patrick- Geschrieben 7. März 2006 Geschrieben 7. März 2006 Hallo Leute, ich habe eine Datenbank mit z.B. der Tabelle "User". Dort sind z.B. Nachname und Kennwort hinterlegt. Kann mir jemand helfen, wie ich es am besten anstelle, dass nur die User, die in der Datenbank eingetragen sind die Website ansehen dürfen? Ich programmiere mit HTML, ASP (VBScript), MS-SQL. .htaccess funktioniert laut selfhtml nicht auf einem IIS. Wäre lieb wenn ihr mir mit eurem Wissen helfen könntet! mfg Patrick Zitieren
geloescht_JesterDay Geschrieben 7. März 2006 Geschrieben 7. März 2006 Keine Ahnung von ASP, aber grob: Zu Beginn der Seite prüfen, ob angemeldet (Session?), wenn nicht Login anzeigen. Wenn Login erfolgt, gegen die DB prüfen und merken, dass der Benutzer angemeldet ist... Zitieren
Pinhead Geschrieben 7. März 2006 Geschrieben 7. März 2006 Also vom Ansatz her würde ich das so machen Benutzernamen und Kennwort vom User eingeben lassen Gibts den Namen in der DB Wenn Ja stimmt das eingegeben Passwort mit dem gespeicherten überein Wenn Ja Dann weiterleiten auf die anzuzeigenden Daten Ansonsten Fehlermeldung ausgeben Zitieren
geloescht_JesterDay Geschrieben 7. März 2006 Geschrieben 7. März 2006 Gibts den Namen in der DB Wenn Ja stimmt das eingegeben Passwort mit dem gespeicherten überein Warum so umständlich? Warum nicht eine Anfrage: gibt es den User mit dem Passwort? SELECT id FROM UserTab WHERE user = $user AND pass = md5($pass) beispielweise Zitieren
Pinhead Geschrieben 7. März 2006 Geschrieben 7. März 2006 Warum so umständlich? Mir schwebten halt mehrere Fehlermeldungen vor. Zum Beispiel : User nicht gefunden Passwort ungültig. Natürlich kann man auch beides mit einer Abfrage erschlagen Zitieren
DevilDawn Geschrieben 7. März 2006 Geschrieben 7. März 2006 Mir schwebten halt mehrere Fehlermeldungen vor. Zum Beispiel : User nicht gefunden Passwort ungültig. Um einem möglichen Einbrecher auch noch Tipps zu geben welcher User gültig ist und welcher nicht? Nee nee das macht man in der Regel gerade nicht. One Errormessage fits all. Zitieren
patrick- Geschrieben 7. März 2006 Autor Geschrieben 7. März 2006 An sowas habe ich auch gedacht, wäre ja schön wenn es dabei bleiben könnte. Ich denke, dass das so auch ohne Probleme funktionieren würde. ABER: Angenommen ein Benutzer loggt sich so wie beschrieben ein: Dann bekommt er Zugriff auf die Seite und kann sich alles anschauen. Nun klickt er sagen wir mal einen unterlink an, wo dann z.B. in der URL steht: "http://forum/projekte/dumdidum/mitglieder.asp" Das würde doch bedeuten, dass er beim nächsten aufruf der Seite sofort diesen Link eingeben kann und somit die Passwort Abfrage umgehen kann. Somit fällt diese Lösung also weg, oder täusche ich mich? Zitieren
tobias-digital Geschrieben 7. März 2006 Geschrieben 7. März 2006 Du müsstest natürlich in jede Seite eine entsprechende Abfrage einbauen ob eine bestimmte Session-Variable (<-- gibt's das überhaupt in ASP) gesetzt ist, und ansonsten zum Login schicken. In PHP würde das ansatzweise z. B. so aussehen: if (!$_SESSION['user']['logged_in']) { die(header('location: login.php')); } [/PHP] Grüße, Tobias Zitieren
patrick- Geschrieben 7. März 2006 Autor Geschrieben 7. März 2006 Also ich hab bislang herausgefunden, dass man sich mit Session.SessionID die aktuelle SessionID anzeigen lassen kann. Jedoch ändert sich diese bei mir jedesmal, sobald ich die Seite aktualisiere? Ich frag mich gerade ob es möglich wäre, eine Passwort Abfrage zu machen, wo halt abgeglichen wird obs den Benutzer gibt (blabla...) aber dann noch die Aktuelle Session ID irgendwie zu speichern und mit auf die nächste Seite zu übergeben, und halt jedesmal weiter zu übergeben. Und sobald diese sich ändert, ist dann die Seite nicht mehr erreichbar. Hmm... stellt sich dann nur die Frage, wo / wie speichere ich die ID? Und ändert sich diese dann nicht bei jedem anklicken eines neuen Links? Zitieren
tobias-digital Geschrieben 7. März 2006 Geschrieben 7. März 2006 Ja, das müsstest Du dann wohl mal in der ASP-Referenz nachschlagen. Unter PHP gibt's jedenfalls ein Session-Array, in dem man entsprechend der Array Struktur Werte ablegen und über beliebig viele Seiten hinweg nutzen kann. Zitieren
Amstelchen Geschrieben 7. März 2006 Geschrieben 7. März 2006 IIS unterstützt kein .htaccess, wohl aber einen mechanismus wie basic HTTP authentication. die kombination dieser standardisierten methode mit einem datenbank-backend (das kann sowohl mit dem erwähnten SQL server, aber auch mit simplen plaintext-dateien - oder ganz exotisch - excel erfolgen) wird den gewünschten sicherheitserfordernissen genügen. sowohl der ansatz als auch die implemntierung sind z.b. in den folgenden artikeln sehr gut beschrieben: ASP-basierte Basic Authentication Formular-basierte Basic Authentication auch gut beschrieben sind sessions mittels ASP: Session Variablen s'Amstel Zitieren
Trux Geschrieben 8. März 2006 Geschrieben 8. März 2006 also du kannst in der Page.Session[index oder String] beliebege werte in der Session ablegen, zu beachten ist jedoch bei links, redirect etc relative pfade zu verwenden damit die Session-/id nicht verlohren geht. Ansonnsten musst du die SessionID in die URL mit einbauen. Ich weiß nicht genau ob du in der Web.config die Session "einschalten" musst. Zitieren
patrick- Geschrieben 8. März 2006 Autor Geschrieben 8. März 2006 Amstelchen, du hast mir mal wieder sehr geholfen! Dein 3. Link war mir sehr sehr hilfreich! (Hatte diese Seite zwar selber schon gefunden, allerdings nicht DIESESN Artikel). Den anderen Danke ich natürlich auch!! =) Hiermit beende ich nun meine Session und wünsche euch ne schöne Woche Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.