In 4D Anwendungen gibt es vier Arten von Sessions: 4D Remote Session, Stored Procedure Session, Mobile Session und Web Session.
Der Befehl Session gibt bereits Web- oder Mobile-Sessions zurück. Damit haben Sie Zugriff auf eine Vielzahl von Informationen über die Session und ein Objekt, das von allen Prozessen in der Session gemeinsam genutzt wird.
In 4D 20 R5 wurde der Session-Befehl auf die Client/Server-Verbindung und Stored Procedure erweitert.
4D Session
Unterschiedlicher Typ
Die Definitionen einer Stored-Procedure-Session oder einer Remote-Session sind:
Stored-Procedures-Session
Wenn Sie eine Methode mit dem Execute on server aufrufen, erzeugt 4D einen „Stored Procedure“-Prozess. Alle „Stored Procedure“-Prozesse gehören zur gleichen Session, die für Stored Procedures bestimmt ist.
Remote-Session
Methoden mit der Eigenschaft „Execute on server“ werden im Client-Zwillingsprozess auf dem Server ausgeführt. Alle Client-Zwillingsprozesse werden in der gleichen Session ausgeführt.
Klasse Session
Für eine Remote-Session oder eine Stored-Procedure-Session gibt der Session-Befehl ein 4D.Session Objekt zurück, das die folgenden Eigenschaften enthält:
- id – Eindeutiger Bezeichner der Session
- info – Alle Informationen über die Session
- storage – Ein gemeinsames Objekt, das zum Speichern von Informationen verwendet werden kann, die allen Prozessen der entfernten Session zur Verfügung stehen
- userName – Der mit der Session verbundene Benutzername
Zum Schreiben von generischem Code stehen dieselben Funktionen der Web-Session zur Verfügung. Sie tun jedoch nichts und geben immer denselben Wert zurück. Wir laden Sie ein, die Dokumentation der Klasse Session zu lesen.
Beispiel:
{ "id": "B022A91187EF46C6B4D58C2A9BDE3C91", "info":{ "type": "remote", "userName": "Designer", "machineName": "John Computer", "SystemBenutzername": "John Doe", "IPAdresse": "localhost", "hostType": "mac", "creationDateTime": "2024-03-27T10:11:31Z", "state": "aktiv", "ID": "B022A91187EF46C6B4D58C2A9BDE3C91", "persistentID": "24336199BADF4BFE945B109E565D1189" }, "storage": { "Einstellungen": { "text": "test" } }, "userName": "Designer" }
Gemeinsame Nutzung von Daten zwischen Prozessen
Wenn eine neue Session erstellt wird, wird die Eigenschaft „Session.storage“ mit einem leeren gemeinsamen Objekt instanziiert. Dann können Sie alle Daten speichern, die Sie zwischen Prozessen in derselben Session austauschen möchten.
Use (Session.storage)
Session .storage.settings:=New shared object("property"; $value; "property2"; $value2)
End use
Anwendungsfälle
Prozess der Benutzerauthentifizierung und -verifizierung
Sie starten ein Verfahren zur Benutzerauthentifizierung und -verifizierung, wenn ein Client eine Verbindung zum Server herstellt. Dies kann zum Beispiel die Eingabe eines per E-Mail oder SMS gesendeten Codes in die Anwendung beinhalten. Anschließend fügen Sie die Benutzerinformationen dem Sessionspeicher hinzu, so dass der Server den Benutzer identifizieren kann. Auf diese Weise kann der 4D Server für alle Client-Prozesse auf die Benutzerinformationen zugreifen, so dass je nach Rolle des Benutzers (z. B. Manager, HR usw.) maßgeschneiderter Code geschrieben werden kann.
Daten einschränken
Mit diesem neuen Sessionstyp können Sie die Daten einschränken, die dem verbundenen Benutzer angezeigt werden. In einer Kundenverwaltungsanwendung hat zum Beispiel der Vertriebsmitarbeiter nur Zugriff auf seine Kundendaten. Alle Informationen zu dieser neuen Funktion werden in diesem Blog erläutert.
Weiter
Wenn Sie Fragen haben oder uns Ihre Erfahrungen und Anwendungsfälle mitteilen möchten, können Sie dies gerne im 4D Forum tun.