4D v16.3Web Sessions verwalten |
||
|
4D v16.3
Web Sessions verwalten
Web Sessions verwalten
Der 4D Web Server bietet eine einfache und komplette Art zum Verwalten von Benutzersitzungen. Dieser automatische Mechanismus ermöglicht aufeinanderfolgenden Web Clients, von einer Anfrage zur nächsten denselben Kontext (Auswahlen und Variableninstanzen) erneut zu verwenden. Das wird über ein privates Cookie ausgeführt, das 4D selbst setzt: "4DSID". Bei jeder Anfrage des Web Client prüft 4D den Wert des 4DSID Cookie:
Damit Sie die automatische Session-Verwaltung in Ihrer Applikation verwenden können, müssen Sie diese in Ihrem 4D Web Server aktivieren. Diese Funktionsweise wird in Anwendungen, die mit 4D v13 oder höher erstellt werden, automatisch aktiviert. Dafür gibt es zwei Möglichkeiten:
In beiden Fällen gilt die Einstellung lokal für den Rechner; sie kann also auf den Web Server in 4D Server anders sein als auf Rechnern mit remote 4D. Die Lebensdauer eines inaktiven Cookie beträgt standardmäßig 8 Stunden (480 Minuten), das lässt sich aber über den Befehl WEB SET OPTION verändern. Sie können eine andere Lebensdauer für Cookies (Option Web Inactive session timeout) in Prozessen festlegen, die mit Server Sessions verbunden sind (Option Web Inactive process timeout): Sie wollen z.B. für einen Warenkorb definieren, dass er 24 Stunden gültig bleibt. Aus Optimierungsgründen wollen Sie diesen Prozess jedoch nicht so lange beibehalten. Dafür können Sie z.B. eine Prozesslebensdauer von 4 Stunden festlegen. Am Ende dieser Zeitspanne wird die Datenbankmethode On Web Close Process aufgerufen und Sie können die Variablen und Auswahlen dieser Session speichern, bevor der Prozess gestoppt wird. Meldet sich der Web Client das nächste Mal an (bis zu 24 Stunden später), wird das Cookie an den Server zurückgesendet und Sie können die Informationen zur Session erneut in der Datenbankmethode On Web Connection laden (siehe Beispiel unten). Falls erforderlich, können Sie über den Befehl WEB CLOSE SESSION jederzeit das Cookie beenden und so die Arbeitssitzung schließen. 4D löscht automatisch den ältesten inaktiven Kontext, wenn die maximale Anzahl der beibehaltenen Kontexte erreicht ist. Standardmäßig ist die Nummer 100 festgelegt. Sie lässt sich über den Befehl WEB SET OPTION verändern. Dieses Beispiel zeigt, wie einfach Sie Sessions über die Datenbankmethode On Web Connection und die Datenbankmethode On Web Close Process verwalten können. Der Code der Datenbankmethode On Web Connection lautet: // On Web Connection (oder On Web Authentication) Code für Datenbankmethode On Web Close Process : // On Web Session Suspend Da die Mechanismen der Session-Verwaltung auf Cookies basiert, kann der HTTP Server von 4D eine Session nicht aufrechterhalten, wenn der Web Client keine Cookies akzeptiert. In diesem Fall wird jede Anfrage als neue Anmeldung gewertet und die Methode Compiler_Web wird jedes Mal ausgeführt. Über den Befehl WEB GET HTTP HEADER können Sie prüfen, ob Cookies unterstützt werden. Der 4D HTTP Server merkt sich die IP, welche die Session gestartet hat. Versucht eine andere IP auf eine bestehende Session zuzugreifen, wird der generische Status 400 Client Fehler zurückgegeben.
Siehe auch
Datenbankmethode On Web Close Process
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |