ich möchte einen Online Shop realisieren und da stellt sich mir die Frage wie ich den User durch meine Site identifiziere.
Ich habe mehreren Tuts und Faqs entnommen, daß es für die Masse besser ist, auf SessionIDs und Cookies zu verzichten. (Ist das richtig?)
Es werden auch viele Tricks und Hinweise auf das Überprüfen und verifizieren der ASP-übergebenen UID´s geboten, aber geht es nicht einfacher?
MEINE FRAGE:
Kann ich nicht einfach nach der Identifizierung eine globale Variable im Hauptframe mit der UserID der Datenbank belegen, auf die ich dann von jeder Unterseite aus zugreifen kann?
Die Variable ist dann nur nach erfolgreichem Login belegt und kann auch nicht vom User verändert oder eingesehen werden.
IST SOWAS MÖGLICH, wenn ja, lege ich dann eine JavaVariable oder VB-ScriptVar an? Was wäre die beste Lösung???
Kann ich nicht einfach nach der Identifizierung eine globale
Variable im Hauptframe mit der UserID der Datenbank belegen,
auf die ich dann von jeder Unterseite aus zugreifen kann?
jein. DIE globale variable gibts nur mit sessions
du könntest die variable ständig „mitschleifen“ (hidden felder bzw. über die url), aber dann kann jeder im quelltext bzw. in der url die felder und deren werte einsehen…
ich würde trotz deiner bedenken punkto allgemeiner verfügbarkeit der seiten auf sessions setzen…
Globale Variable in textbox im Hauptframe?
Wenn ich jetzt aber in einem Frame: „hidden“ Größe = 1px des Hauptfensters ein formular: „uid_form“ mit einer hidden Textbox: „uid_txt“ erstelle, und diese Textbox nach dem Login mit der UserID fülle:
Kann ich dann nicht mit
top.hidden.document.uid_form.uid_txt.value
von überall aus zugreifen?
Z.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Wenn ich jetzt aber in einem Frame: „hidden“ Größe = 1px des
Hauptfensters ein formular: „uid_form“ mit einer hidden
Textbox: „uid_txt“ erstelle, und diese Textbox nach dem Login
mit der UserID fülle:
Kann ich dann nicht mit
top.hidden.document.uid_form.uid_txt.value
von überall aus zugreifen?
ich würde sagen: nein. weil du das ja eigentlich am server überprüfen mußt (wenn der user nicht berechtigt ist, soll die seite ja auch nicht zu ihm geschickt werden). auf die userid kannst du aber nur zugreifen, wenn sie im selben formular wie der submit - button ist. in ein 1px großes formular wirst du 1. keinen submit button reinkriegen und 2. hättest du dann sowieso wieder dein „versteck“ verraten…
ich würde sagen: nein. weil du das ja eigentlich am server
überprüfen mußt (wenn der user nicht berechtigt ist, soll die
seite ja auch nicht zu ihm geschickt werden).
Das ist ein Argument, diese Überprüfung wäre Clientseitig
auf die userid
kannst du aber nur zugreifen, wenn sie im selben formular wie
der submit - button ist. in ein 1px großes formular wirst du
keinen submit button reinkriegen
der Frame wäre nur 1px, das Formular ist dann egal
und 2. hättest du dann
sowieso wieder dein „versteck“ verraten…
Stimmt, der Quelltext würde dann den Wert verraten…
Mist dann muss ich es doch anders machen!
Hast Du ein gutes Beispiel, wie man einen Login und spätere Identifizierung macht? Weise ich in der Datenbank dem User eine temporäre Session ID nch der authentifizierung zu, oder wie identifiziert man sich später?
Hast Du ein gutes Beispiel, wie man einen Login und spätere
Identifizierung macht? Weise ich in der Datenbank dem User
eine temporäre Session ID nch der authentifizierung zu, oder
wie identifiziert man sich später?
wenn du für dein web sessions ermöglichst, dann stehen dir session - variablen zur verfügung.
in einer datenbank hast du zb user & passwort abgespeichert.
meldet sich der user auf deiner login - seite an, überprüfst du auf der aufgerufenen seite, ob der user (mit entsprechendem paßwort) existiert. wenn dies der fall ist, setzt du zb. Session(„authentifiziert“) auf TRUE
ist dies nicht der fall, beförderst du ihn auf die login - seite (ev. mit fehlermeldung) zurück.
auf allen weiteren seiten brauchst du nur noch Session(„authentifiziert“) auf TRUE überprüfen… (ist es nicht gesetzt, kommt er wieder zur login - seite)
Es gibt eine Möglichkeit…
Du kannst es so machen, dass sich der User zuerst einloggt (ganz normal per Formular) und Du dann die Benutzerkennung mit der in der DB vergleichst. Wenn die Stimmt vergleichst Du das Passwort… wenn das auch stimmt:
Machst Du irgendeinen Zufallswert aus UserID, Datum und Uhrzeit und verschlüsselst das ganze. Dann übergibst Du das an die weiteren Pages per QueryString…
So kannste dann auf jeder Page serverseitig checken wer der User ist…
Das habe ich aber anders gehört
Ist es ned so, dass Sesssion-Variablen nix anderes als Cookies sind ? Wenn ja, kann jeder User das Cookie anschauen…oder bringe ich da jetzt etwas durcheinander ?
Session-Variablen sind sicher!
JJLehto hat recht: Session-Variablen sind sicher!
Ist es ned so, dass Sesssion-Variablen nix anderes als Cookies sind ?
Nein: Session-Variablen sind Variablen, die serverseitig gespeichert werden und einer bestimmten Session (mit einer bestimmten ID) zugeordnet sind. Diese ID (von ASP automatisch erzeugt, z.B. so was wie „AAQQGHFETJDDKSW“) wird dann als Cookie zum Client gesendet.
kann jeder User das Cookie anschauen? Oder
bringe ich da jetzt etwas durcheinander ?
Jeder User kann seine Session ID sehen, wenn er möchte, (den oben erwähnten zufällig erzeugten String), nicht aber, welche Variablen zu dieser ID auf dem Server gespeichert sind. Fordert er eine neue Seite vom Server an, so wird die ID immer mitgesendet. Und der Server prüft dann nur noch, ob die ID noch gültig ist, und welche Variablen in der dazugehörigen Session gespeichert sind. That’s it.
Ehm…aber wie ist das schon wieder…
wie lange ist so ne Session gültig ?
So lange Du willst - Du als Programmierer, meine ich: Die Standardeinstellung ist 20 Minuten, aber das „Session“ Objekt hat eine Eigenschaft „TimeOut“, die Du beliebig einstellen kannst:
verlängert die Gültigkeit zum Beispiel auf eine Stunde.
ist das die feine englische Art, meinen Artikel zu hinterfragen, zu einer Zeit, zu der ich nicht mehr online bin und mich infolgedessen nicht wehren kann?
Wieso immer ´mit QueryStrings???..
Hallo,
Danke für die Kurzbeschreibung, aber eines ist mir noch unklar!
Warum werden die IDs mitgeschleift? Dann brauche ich die SessionVariablen noch nicht, oder wie?
Wenn ich dem User nach erfolgreicher registrierung eine SessionID mit seiner UserID aus der Datenbank verpasse, kann ich doch auch von überall drauf zugreifen, oder? Dann kann ich die ID direkt nutzen für meine Inserts, etc. Die ID kann der User ja nicht verändern, und wenn er sie halt sieht ist doch auch egal…
ZoMbiE
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
is schon klar…habe schon einiges gelesen von dir und (sonst
hätt ich den artikel auch nicht geschrieben) gemerkt, daß du
auch spaß verstehst…
Ja klar…Du verstehst wohl auch Spass. Aber ich habe in anderen Boards gemerkt, dass die Leute teilweise so Sachen meeeega ernst nehmen - und das ist dann ned so toll
…daß die mod’s aber auch immer so mit ihrer macht prahlen
müssen…
Hehe… hey ich werde weder bezahlt noch sonstwas…irgendwas muss ich ja wohl vom Mod-Posten haben *smile*