Session Management
Moderator: Moderatoren
Session Management
Hallo,
ich kämpfe gerade mit dem WAA und komme mit dem Session Management überhaupt nicht klar. Kann mir dazu vielleicht jemand mal etwas in verständlicher Form erzählen? Die WAA Doku ist ja nicht sonderlich informativ .
Wenn ich es richtig verstanden habe, braucht doch jeder User eine Session, also eine ID oder?
Dankeschön.
Jan
ich kämpfe gerade mit dem WAA und komme mit dem Session Management überhaupt nicht klar. Kann mir dazu vielleicht jemand mal etwas in verständlicher Form erzählen? Die WAA Doku ist ja nicht sonderlich informativ .
Wenn ich es richtig verstanden habe, braucht doch jeder User eine Session, also eine ID oder?
Dankeschön.
Jan
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Session Management
Hallo, Jan.
Ich benutze Xb2.Net für Serveranwendungen, aber das dürfte sich ähneln. Je Session wird dort ein Thread gestartet (eigentlich sind es sogar mehrere, aber das spielt in diesem Zusammenhang keine Rolle). Je Nutzer wird eine ein-eindeutige Session-ID vergeben, weil die für die (ja nicht-persistente!) Verbindung als eindeutiger Identifier dient (Du willst nicht Nutzer 2 die Antwort für Nutzer 1 schicken). Wenn Du mit Multithreading arbeitest und je Session einen Thread eröffnest (nicht vergessen, ihn wieder zu töten), sind designseitig auch keine weiteren Tricks nötig.
Ich benutze Xb2.Net für Serveranwendungen, aber das dürfte sich ähneln. Je Session wird dort ein Thread gestartet (eigentlich sind es sogar mehrere, aber das spielt in diesem Zusammenhang keine Rolle). Je Nutzer wird eine ein-eindeutige Session-ID vergeben, weil die für die (ja nicht-persistente!) Verbindung als eindeutiger Identifier dient (Du willst nicht Nutzer 2 die Antwort für Nutzer 1 schicken). Wenn Du mit Multithreading arbeitest und je Session einen Thread eröffnest (nicht vergessen, ihn wieder zu töten), sind designseitig auch keine weiteren Tricks nötig.
Herzlich,
Tom
Tom
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Session Management
Hallo Jan,
man braucht nicht unbedingt eine Session. Nur wenn Du auch eine Benutzeranmeldung benötigst, solltest Du wissen, wo der Request herkommt. Eine SessionID ist eine eindeutige Nummer, die Du einer Session zuordnen kannst. Eine Session ist normalerweise ein Cookie. Du kannst aber auch auf ein Cookie verzichten, wenn Du z.B. diese ID in jede URL mit einbaust und übergibst. Das Cookie wird über das Context-Objekt verwaltet.
Wir haben z.B. eine Intranet-Anwendung und greifen mit oContext:getRemoteUser() auf die Windowsanmeldung zu - muß im Browser entsprechend eingestellt werden. Wir verzichten auf eine extra SessionID.
Grüße, Armin
man braucht nicht unbedingt eine Session. Nur wenn Du auch eine Benutzeranmeldung benötigst, solltest Du wissen, wo der Request herkommt. Eine SessionID ist eine eindeutige Nummer, die Du einer Session zuordnen kannst. Eine Session ist normalerweise ein Cookie. Du kannst aber auch auf ein Cookie verzichten, wenn Du z.B. diese ID in jede URL mit einbaust und übergibst. Das Cookie wird über das Context-Objekt verwaltet.
Wir haben z.B. eine Intranet-Anwendung und greifen mit oContext:getRemoteUser() auf die Windowsanmeldung zu - muß im Browser entsprechend eingestellt werden. Wir verzichten auf eine extra SessionID.
Grüße, Armin
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Session Management
Hallo Jan,
z.B. automatischer Login mit Windows-Benutzer:
Wenn Du eine Session-ID benutzen willst (eindeutige zufällige Kennung... generieren mit random() oä) kannst Du diese auch in eine Cargo-Variable schreiben (Session-Var).
z.B.
oContext:setCargo("SID", cSID)
und bei jedem Aufruf einer WAA-Funktion lesen:
cSID := oContext:getCargo("SID")
hdh, Armin
z.B. automatischer Login mit Windows-Benutzer:
Code: Alles auswählen
FUNCTION Login( oHTML, oContext )
...
cRemoteUser := trim(oContext:getRemoteUser())
if !empty(cRemoteUser)
nPosSlash := rat("\",cRemoteUser)
if nPosSlash > 0
cName := right(cRemoteUser, len(cRemoteUser)-nPosSlash)
else
cName := cRemoteUser
endif
else
// aus Login-HTML
cName := oHTML:getVar( "TheName" )
cLangu := oHTML:getVar( "TheLanguage" )
endif
success := oContext:setCargo("RemoteUser", cRemoteUser)
z.B.
oContext:setCargo("SID", cSID)
und bei jedem Aufruf einer WAA-Funktion lesen:
cSID := oContext:getCargo("SID")
hdh, Armin
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Session Management
Hi,
ob man eine Session-ID braucht hängt vom Einsatzzweck ab. Wenn man wie auf einer normalen WebSite nur Infos
zum Lesen anzeigt und sonst nichts wissen muss, braucht man keine.
Wenn du aber z.B. Zugriffskontrolle / Anmeldung / Seitenhistorie oder was weis ich brauchst, dann musst dein
CGI/Server Programm genau unterscheiden können wer diese eine Anfrage sendet. Dafür braucht man session IDs.
Wie man die dann anlegt ist wieder eine andere Frage
ob man eine Session-ID braucht hängt vom Einsatzzweck ab. Wenn man wie auf einer normalen WebSite nur Infos
zum Lesen anzeigt und sonst nichts wissen muss, braucht man keine.
Wenn du aber z.B. Zugriffskontrolle / Anmeldung / Seitenhistorie oder was weis ich brauchst, dann musst dein
CGI/Server Programm genau unterscheiden können wer diese eine Anfrage sendet. Dafür braucht man session IDs.
Wie man die dann anlegt ist wieder eine andere Frage
Gruß
Hubert
Hubert
Re: Session Management
Hi Ihr Web Profis ,
also irgendwie steig ich bei dem Session Management noch nicht so richtig durch.
Starte ich die WAA Anwendung, wird erstmal eine Session ID vergeben. Die speichere ich dann mit setCargo in einer Variablen. Bei jeder Funktion hole ich mir die Session ID wieder mit getCargo. Das klappt auch soweit. Wenn ich jetzt aber ein zweites Browser Fenster öffne und wieder die WAA Anwendung starte, gibt es ein durcheinander zwischen den beiden Sessions. Was mache ich falsch?
Gruß Jan
also irgendwie steig ich bei dem Session Management noch nicht so richtig durch.
Starte ich die WAA Anwendung, wird erstmal eine Session ID vergeben. Die speichere ich dann mit setCargo in einer Variablen. Bei jeder Funktion hole ich mir die Session ID wieder mit getCargo. Das klappt auch soweit. Wenn ich jetzt aber ein zweites Browser Fenster öffne und wieder die WAA Anwendung starte, gibt es ein durcheinander zwischen den beiden Sessions. Was mache ich falsch?
Gruß Jan
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Session Management
Hi,
eigentlich sollte jede Browsersitzung eine eigene SessionID haben,
ich weiß aber nicht wie der WAA das handled ...
Bei dem Forum HIER ist es wohl so, dass man per cockie angemeldet ist, das auf dem Rechner liegt.
Ein Rechner ein cockie, alle haben die gleiche session ID.
Für das Forum ist das auch OK, man kann mit mehreren Sitzungen gleichzeitig arbeiten ... als Multiusertest
funktioniert es halt nicht.
eigentlich sollte jede Browsersitzung eine eigene SessionID haben,
ich weiß aber nicht wie der WAA das handled ...
Bei dem Forum HIER ist es wohl so, dass man per cockie angemeldet ist, das auf dem Rechner liegt.
Ein Rechner ein cockie, alle haben die gleiche session ID.
Für das Forum ist das auch OK, man kann mit mehreren Sitzungen gleichzeitig arbeiten ... als Multiusertest
funktioniert es halt nicht.
Gruß
Hubert
Hubert
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Session Management
Hallo Jan,
das liegt daran, dass nur 1 Cockie im Browser abgelegt wird.
Die 2.Session kannst Du in diesem Fall z.B. mit einem anderen Browser öffnen - also z.B. Session 1 mit dem IE und die 2.mit dem Firefox.
Ich empfehle Dir die Variablen, d.h. in diesem Fall die Session-ID, alle in das HTML zu speichern und von dort wieder einzulesen. Das ist die sicherste Methode.
Grüße, Armin
das liegt daran, dass nur 1 Cockie im Browser abgelegt wird.
Die 2.Session kannst Du in diesem Fall z.B. mit einem anderen Browser öffnen - also z.B. Session 1 mit dem IE und die 2.mit dem Firefox.
Ich empfehle Dir die Variablen, d.h. in diesem Fall die Session-ID, alle in das HTML zu speichern und von dort wieder einzulesen. Das ist die sicherste Methode.
Grüße, Armin
Re: Session Management
Hallo Ihr beiden,
Cookies verwende ich eigentlich garnicht oder legt set/getCargo welche an? Hab das jede mit 2 Browsern von 2 verschiedenen PC's ausprobiert, aber der mischmasch bleibt leider. Scheint an irgendeiner anderen Stelle wohl etwas falsch zu laufen .
Cookies verwende ich eigentlich garnicht oder legt set/getCargo welche an? Hab das jede mit 2 Browsern von 2 verschiedenen PC's ausprobiert, aber der mischmasch bleibt leider. Scheint an irgendeiner anderen Stelle wohl etwas falsch zu laufen .
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Session Management
Hallo Jan,
Und mit getCargo liest Du sie aus.
Coockies bleiben im Browser erhalten, wenn Du sie nicht löscht. D.h. Deine vorhergehende Session wird wieder aufgenommen. D.h. vor Test löschen...
Grüße, Armin
Du legst mit setCargo eine Coockie-Variable an!Starte ich die WAA Anwendung, wird erstmal eine Session ID vergeben. Die speichere ich dann mit setCargo in einer Variablen.
Und mit getCargo liest Du sie aus.
Coockies bleiben im Browser erhalten, wenn Du sie nicht löscht. D.h. Deine vorhergehende Session wird wieder aufgenommen. D.h. vor Test löschen...
Grüße, Armin
Re: Session Management
Hallo Armin
Wie meinst du das?Ich empfehle Dir die Variablen, d.h. in diesem Fall die Session-ID, alle in das HTML zu speichern und von dort wieder einzulesen. Das ist die sicherste Methode.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Session Management
Hi,
vermutlich meint er die Hidden Variablen im HTML CODE ...
die dann mit dem jeweiligen Variablen Inhalt ausgefüllt werden.
so mache ich es bei meinen CGI Programmen.
vermutlich meint er die Hidden Variablen im HTML CODE ...
Code: Alles auswählen
<INPUT TYPE="HIDDEN" NAME="SESSIONID" VALUE="{sessionid}"></INPUT>
<INPUT TYPE="HIDDEN" NAME="USERNAME" VALUE="{username}"></INPUT>
<INPUT TYPE="HIDDEN" NAME="PROGSTAT" VALUE="{progstat}"></INPUT>
Code: Alles auswählen
cHTML := strTran(cHTML,"{sessionid}",cSessionID)
...
Gruß
Hubert
Hubert
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Session Management
Hallo,
ja zum Beispiel so. Dann ist immer klar, von welchem Browser-Fenster der WAA-Aufruf kommt.
Die Session-ID kann aber schon als Cookie gespeichert werden. Das ist ja eigentlich auch ihr Sinn, sie dient ja als Anmeldung - dann sind alle Fenster/Tabs dieses Browsers angemeldet. Dies sollte auch funktionieren.
Wenn man die Session-ID aber in das HTML schreibt und von dort wieder liest, ist es auch egal ob der Benutzer Cookies akzeptiert.
Grüße, Armin
ja zum Beispiel so. Dann ist immer klar, von welchem Browser-Fenster der WAA-Aufruf kommt.
Die Session-ID kann aber schon als Cookie gespeichert werden. Das ist ja eigentlich auch ihr Sinn, sie dient ja als Anmeldung - dann sind alle Fenster/Tabs dieses Browsers angemeldet. Dies sollte auch funktionieren.
Wenn man die Session-ID aber in das HTML schreibt und von dort wieder liest, ist es auch egal ob der Benutzer Cookies akzeptiert.
Grüße, Armin
Re: Session Management
Hi,
nochmal zum Verständnis:
- penSession() braucht man immer. Auch wenn ich eine eigene Session ID generiere
- :setCargo() legt Cookie-Variablen an. Wenn ich das nicht will, lege ich die Variablen
im HTML Code an.
Habe ich das richtig verstanden?
Gruß Jan
nochmal zum Verständnis:
- penSession() braucht man immer. Auch wenn ich eine eigene Session ID generiere
- :setCargo() legt Cookie-Variablen an. Wenn ich das nicht will, lege ich die Variablen
im HTML Code an.
Habe ich das richtig verstanden?
Gruß Jan
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Session Management
Hallo Jan,
ich glaube penSession() braucht man nur für die Möglichkeit, Cargo-Variablen, bzw. Cookies zu verwalten.
Nach meiner Meinung ist tatsächlich die sinnvollste Cargo-Variable die Session-ID.
Alle anderen Variablen sollten besser im HTML oder auf dem Server unter der Session-ID abgelegt sein.
Die Benutzer haben mit einem Browser z.B. die Möglichkeit einen HREF in einem eigenen Fenster/ Tab zu öffnen oder direkt die URL einzugeben. Somit können plötzlich mehrere Fenster mit unterschiedlichen Daten geöffnet sein. So können z.B. von der gleichen Session für 2 unterschiedliche Artikel ein Artikeldatenblatt angefordert werden - würde die Artikelnummer jetzt in einer Sessionvariable stehen, hätte man die vom letzten geöffneten Fenster... Das vorhergehende kann aber immer noch geöffnet sein. Deshalb solche Variablen immer ins HTML schreiben.
Daten rund um die Session, bzw. Benutzeranmeldung kann man sich auch unter der Session-ID auf dem Server speichern - dann kann auch weniger manipuliert werden...
Grüße, Armin
ich glaube penSession() braucht man nur für die Möglichkeit, Cargo-Variablen, bzw. Cookies zu verwalten.
ja!- :setCargo() legt Cookie-Variablen an. Wenn ich das nicht will, lege ich die Variablen
im HTML Code an.
Nach meiner Meinung ist tatsächlich die sinnvollste Cargo-Variable die Session-ID.
Alle anderen Variablen sollten besser im HTML oder auf dem Server unter der Session-ID abgelegt sein.
Die Benutzer haben mit einem Browser z.B. die Möglichkeit einen HREF in einem eigenen Fenster/ Tab zu öffnen oder direkt die URL einzugeben. Somit können plötzlich mehrere Fenster mit unterschiedlichen Daten geöffnet sein. So können z.B. von der gleichen Session für 2 unterschiedliche Artikel ein Artikeldatenblatt angefordert werden - würde die Artikelnummer jetzt in einer Sessionvariable stehen, hätte man die vom letzten geöffneten Fenster... Das vorhergehende kann aber immer noch geöffnet sein. Deshalb solche Variablen immer ins HTML schreiben.
Daten rund um die Session, bzw. Benutzeranmeldung kann man sich auch unter der Session-ID auf dem Server speichern - dann kann auch weniger manipuliert werden...
Grüße, Armin
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: Session Management
Entweder habe ich das immer falsch verstanden oder ihr macht einen Fehler.
So weit ich weiss, werden Cookies auf dem Client und die Sessions auf dem Server verwaltet!
Bei den Sessions gibt es so mit weniger möglichkeiten für die Sicherheitslöcher.
Wenn ich Cookies oder sogar die Daten in HTML speichere, gibt es dann eine große Wahrscheinlichkeit, dass der Server geknackt werden und unbefugter Datenzugriff erfolgen könnte! Davon würde ich abraten! Ausser, dass man die ID des angezeigten Datensatzes im HTML ablegt, damit man weisst, was der User sehen bzw. bearbeiten möchte.
Hier ist ein Beispiel für die Verwendung der Session, wobei die Session in jeder Funktion geöffnet und auf die Richtigkeit der Daten überprüft werden muss:
Ich hoffe, dass es euch weiter hilft! Ich habe es am Anfang auch mit den Variablen in HTML gemacht und dann auf die Session umgestellt, da solche Seiten mehr Datensicherheit bieten!
So weit ich weiss, werden Cookies auf dem Client und die Sessions auf dem Server verwaltet!
Bei den Sessions gibt es so mit weniger möglichkeiten für die Sicherheitslöcher.
Wenn ich Cookies oder sogar die Daten in HTML speichere, gibt es dann eine große Wahrscheinlichkeit, dass der Server geknackt werden und unbefugter Datenzugriff erfolgen könnte! Davon würde ich abraten! Ausser, dass man die ID des angezeigten Datensatzes im HTML ablegt, damit man weisst, was der User sehen bzw. bearbeiten möchte.
Hier ist ein Beispiel für die Verwendung der Session, wobei die Session in jeder Funktion geöffnet und auf die Richtigkeit der Daten überprüft werden muss:
Code: Alles auswählen
FUNCTION LOGIN( oHTML, oContext )
local lOK = .f.
*hier kommt die Überprüfung der Anmeldedaten
if lOK
oContext:openSession()
oContext:setCargo( "USER", alltrim((DBUSER)->username) )
oContext:setCargo( "USERNAME", alltrim((DBUSER)->name) )
oContext:setCargo( "KDNR", (DBUSER)->kdnr )
oContext:setCargo( "KST", (DBUSER)->kstpflicht )
oContext:setCargo( "PACKAGE", "WEBSERVICE" )
*usw.
Hauptseite( oHTML, oContext )
else
*Fehler beim Anmelden
ENDIF
RETURN .t.
Code: Alles auswählen
FUNCTION Abmelden( oHtml, oContext )
oContext:closeSession()
oHTML:setLocation( "../index.html" )
RETURN nil
Code: Alles auswählen
FUNCTION Hauptseite( oHTML, oContext )
LOCAL cUser := ""
LOCAL cName := ""
local nKdNr := 0
oContext:openSession()
cUser := oContext:getCargo( "USER" )
cName := oContext:getCargo( "USERNAME" )
nKdNr := oContext:getCargo( "KDNR" )
IF cUser == NIL
Abmelden( oHtml, oContext )
RETURN nil
ENDIF
*hier kommt weitere Verarbeitung und Ausgabe
RETURN nil
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Session Management
Hallo Andreas,
hast du mal im Quellcode (Browser HTML Quellcode anzeigen) nachgesehen wie die Variablen im Browser angezeigt werden ?
hast du mal im Quellcode (Browser HTML Quellcode anzeigen) nachgesehen wie die Variablen im Browser angezeigt werden ?
Gruß
Hubert
Hubert
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Session Management
Hallo Andreas,
da ich kein HTML Objekt benutze habe ich keine Ahnung was die Methoden daraus machen, daher frage ich ja
Ich vermute allerdings, dass dies auch einfach nicht angezeigte Variablen sind, somit nichts anderes als wenn man die Session-ID direkt in HTML Variablen übergibt.
da ich kein HTML Objekt benutze habe ich keine Ahnung was die Methoden daraus machen, daher frage ich ja
Ich vermute allerdings, dass dies auch einfach nicht angezeigte Variablen sind, somit nichts anderes als wenn man die Session-ID direkt in HTML Variablen übergibt.
Gruß
Hubert
Hubert
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: Session Management
Hallo Hubert,
in dem WAA-Server-Verzeichnis gibt es eine dbf-Datei, in der die Session-ID vorkommt und ein Memo-Feld mit den Daten vorhanden ist.
Normalerweise nach meinen Kenntnissen speichern alle Web-Server die Session-Infos nur auf dem Server, was wahrscheinlich auch bei WAA der Fall ist.
Wenn ich den Inhalt des Memo-Feldes in der Datei betrachte, kann ich die Variablennamen erkennen, die ich in der Session gespeichert habe.
in dem WAA-Server-Verzeichnis gibt es eine dbf-Datei, in der die Session-ID vorkommt und ein Memo-Feld mit den Daten vorhanden ist.
Normalerweise nach meinen Kenntnissen speichern alle Web-Server die Session-Infos nur auf dem Server, was wahrscheinlich auch bei WAA der Fall ist.
Wenn ich den Inhalt des Memo-Feldes in der Datei betrachte, kann ich die Variablennamen erkennen, die ich in der Session gespeichert habe.
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: Session Management
Nein, darf nicht vorkommen.brandelh hat geschrieben:Und in dem Browser (HTML) Quellcode ist diese nicht enthalten ?
- Armin
- Rekursionen-Architekt
- Beiträge: 393
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Session Management
Hallo Andreas,
ja, hast Recht - in dem Cookie steht die Session-ID, die im Feld SESSION in WAA1SRV.DBF steht.
Das Problem mit Variablen, die Session-weit gültig sind ist z.B. wenn man den Browser mehrfach öffnet - z.B. eine Adresssuche und die Adressnummer als Session-Variable ablegt. Dann gilt diese Adressnummer für beide Fenster. Im 1. Fenster wird aber noch die 1.Adressnummer angezeigt, obwohl als SESSION-Variable die Adressnummer des 2.Fensters gespeichert wird. Klickt man jetzt im 1.Adressnummer z.B. auf Rechnungen pro Adresse und nimmt die Adressnummer aus der Session, dann zeigt man die Rechnungen der 2. Adresse an.
Zu vermeiden, dass mehrere Fenster geöffnet werden ist eigentlich nicht möglich.
Grüße, Armin
ja, hast Recht - in dem Cookie steht die Session-ID, die im Feld SESSION in WAA1SRV.DBF steht.
Das Problem mit Variablen, die Session-weit gültig sind ist z.B. wenn man den Browser mehrfach öffnet - z.B. eine Adresssuche und die Adressnummer als Session-Variable ablegt. Dann gilt diese Adressnummer für beide Fenster. Im 1. Fenster wird aber noch die 1.Adressnummer angezeigt, obwohl als SESSION-Variable die Adressnummer des 2.Fensters gespeichert wird. Klickt man jetzt im 1.Adressnummer z.B. auf Rechnungen pro Adresse und nimmt die Adressnummer aus der Session, dann zeigt man die Rechnungen der 2. Adresse an.
Zu vermeiden, dass mehrere Fenster geöffnet werden ist eigentlich nicht möglich.
Grüße, Armin
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: Session Management
Hallo Armin,
ich kann dein Problem mit 2 Fenstern nicht nachvollziehen, weil ich es nicht ausprobiert habe.
Aber...
wenn du Firefox benutzt, startet dieser meines Wissens nach nur ein mal, obwohl du evtl. mehrere Fenster hast. Deswegen könnte es zu deinem beschriebenen Problem kommen. Versuch es mit unterschiedlichen Browsern, ob es immer noch so ist!
ich kann dein Problem mit 2 Fenstern nicht nachvollziehen, weil ich es nicht ausprobiert habe.
Aber...
wenn du Firefox benutzt, startet dieser meines Wissens nach nur ein mal, obwohl du evtl. mehrere Fenster hast. Deswegen könnte es zu deinem beschriebenen Problem kommen. Versuch es mit unterschiedlichen Browsern, ob es immer noch so ist!