Version 2004 (Geändert)
Die Datenbankmethode On Web Authentication verwaltet die Zugriffe auf den Web Server. Sie wird immer aufgerufen, wenn ein Web Browser versucht, die Verbindung zur Datenbank herzustellen.
Diese Methode empfängt die Text Parameter $1, $2, $3, $4, $5 und $6 mit folgendem Inhalt:
Parameter | Typ | Beschreibung |
$1 | Text | URL |
$2 | Text | HTTP Kopfteil |
$3 | Text | IP Adresse des Web Client (Browser) |
$4 | Text | IP Adresse des Server |
$5 | Text | Benutzername |
$6 | Text | Kennwort |
Sie müssen diese Parameter folgendermaßen deklarieren:
` Datenbankmethode On Web Authentication C_TEXT($1;$2;$3;$4;$5;$6) C_BOOLEAN($0) ` Code für die Methode
Hinweis: Unter Umständen sind nicht alle Parameter der Datenbankmethode On Web Authentication angegeben. Die von der Datenbankmethode empfangene Information richtet sich nach den Optionen, die Sie zuvor im Dialogfenster Einstellungen der Datenbank ausgewählt haben. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit der Verbindung.
URL
Der erste Parameter ($1) ist die URL, welche der Benutzer im Bereich Location seines Web Browsers eingibt, aus der die Host Adresse entfernt wurde.
Nehmen wir als Beispiel eine Intranet Verbindung. Die IP Adresse Ihres 4D Web Server Rechners ist 123.4.567.89. Nachfolgende Tabelle zeigt die Werte von $1, je nachdem, welche URL im Web Browser eingegeben wurde:
URL im Bereich Location des Web Browsers | Wert des Parameters $1 |
123.4.567.89 | / |
http://123.4.567.89 | / |
123.4.567.89/Kunden | /Kunden |
http://123.4.567.89/Kunden | /Kunden |
http://123.4.567.89/Kunden/Hinzufügen | /Kunden/Hinzufügen |
123.4.567.89/Führe_dieses_aus/Wenn_OK/ | /Führe_dieses_aus/Wenn_OK |
Führe_jenes_aus | /Führe_jenes_aus |
Kopfteil der HTTP Anfrage
Der zweite Parameter ($2) ist der Kopfteil der HTTP Anfrage, die der Web Browser sendet. Beachten Sie, dass dieser Kopfteil komplett an Ihre Datenbankmethode On Web Authentication übergeben wird. Sein Inhalt variiert je nach Art des Web Browsers, der versucht, die Verbindung herzustellen.
Verwendet Ihre Anwendung diese Information, entscheiden Sie selbst, ob der Kopfteil durchlaufen werden soll.
Hinweis: Weitere Informationen zu diesem Parameter finden Sie im Abschnitt Datenbankmethode On Web Connection.
IP Adresse des Web Client
Der Parameter $3 empfängt die IP Adresse des Browser Rechners. Mit dieser Information können Sie zwischen Intranet- und Internet-Verbindungen unterscheiden.
IP Adresse des Servers
Der Parameter $4 empfängt die IP Adresse des 4D Web Servers. Dies ermöglicht Multi-Homing, d.h., Sie können Rechner mit mehr als einer IP Adresse nutzen. Weitere Informationen dazu finden Sie im Abschnitt Einstellungen des Web Server.
Benutzername und Kennwort
Die Parameter $5 und $6 empfangen Benutzername und Kennwort, die der Benutzer im Dialogfenster Standard-Identifikation des Browsers eingibt. Dieser Dialog erscheint für jede Verbindung, wenn im Dialogfenster Einstellungen der Datenbank die Option Benutze Kennwörter ausgewählt wurde (Siehe Abschnitt Sicherheit der Verbindung).
Hinweis: Gibt es den vom Browser gesendeten Benutzernamen in 4D, wird der Parameter $6 (das Kennwort des Benutzers) aus Sicherheitsgründen nicht zurückgegeben.
Parameter $0
Die Datenbankmethode On Web Authentication gibt in $0 einen booleschen Wert zurück:
Ist $0 True, wird die Verbindung angenommen.
Ist $0 False, wird die Verbindung zurückgewiesen.
Die Datenbankmethode On Web Connection wird nur ausgeführt, wenn die Verbindung von On Web Authentication angenommen wurde.
Warnung: Übergeben Sie keinen Wert in $0 oder ist $0 in der Datenbankmethode On Web Authentication nicht definiert, wird die Verbindung als akzeptiert angesehen und die Datenbankmethode On Web Connection wird ausgeführt.
Hinweise:
Rufen Sie in der Datenbankmethode On Web Authentication keine Elemente der Oberfläche auf (ALERT, DIALOG, etc.), denn das unterbricht die Datenbankmethode und die Verbindung wird zurückgewiesen. Dasselbe gilt, wenn beim Ausführen der Datenbankmethode ein Fehler auftritt.
Sie können die Ausführung durch 4DACTION oder 4DMETHOD für jede Projektmethode verbieten, wenn Sie im Dialogfenster Methode-Eigenschaften die Option "Zugänglich per 4DACTION, 4DMETHOD und 4DSCRIPT" markieren. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit der Verbindung.
Aufrufe der Datenbankmethode On Web Authentication
Die Datenbankmethode On Web Authentication wird automatisch aufgerufen, unabhängig vom Modus, wenn eine Anfrage oder Bearbeitung die Ausführung einer Methode erfordert. Sie wird auch aufgerufen, wenn der Web Server eine ungültige statische URL empfängt, z.B. wenn die angefragte statische Seite nicht vorhanden ist.
Die Methode wird in folgenden Fällen aufgerufen:
Wenn 4D eine URL empfängt, die mit 4DACTION/ beginnt
Wenn 4D eine URL empfängt, die mit 4DMETHOD/ beginnt
Wenn 4D eine URL empfängt, die mit 4DCGI/ beginnt
Wenn 4D eine URL empfängt, die eine statische Seite aufruft, die nicht vorhanden ist
Wenn 4D ein Tag 4DSCRIPT in einer halbdynamischen Seite abarbeitet
Wenn 4D ein Tag 4D LOOP abarbeitet, das auf einer Methode in einer halbdynamischen Seite basiert.
Beachten Sie, dass, die Datenbankmethode On Web Authentication NICHT aufgerufen wird, wenn der Server eine URL empfängt,die nach einer statischen gültigen Seite fragt.
Beispiel
Hier folgt ein typisches Beispiel für die Datenbankmethode On Web Authentication, die die Verbindungen über die Tabelle Benutzer und Kennwort filtert:
`Datenbankmethode On Web Authentication C_TEXT($5;$6;$3;$4) C_TEXT($user;$password;$BrowserIP;$ServerIP) C_BOOLEAN($4Duser) ARRAY TEXT($users;0) ARRAY LONGINT($nums;0) C_LONGINT($upos) C_BOOLEAN($0) $0:=False $user:=$5 $password:=$6 $BrowserIP:=$3 $ServerIP:=$4 `Verweigere aus Sicherheitsgründen Namen mit @ If (WithWildcard($user) | WithWildcard($password)) $0:=False `Die Methode WithWildcard folgt unten Else `Prüfe, ob es ein 4D Benutzer ist GET USER LIST($users;$nums) $upos:=Find in array($users;$user) If ($upos > 0) $4Duser:=Not(Is user deleted($nums{$upos})) Else $4Duser:=False End if If (Not($4Duser)) `Ist es kein 4D Benutzer, suche in der Tabelle WebUser QUERY([WebUser];[WebUser]User=$user;*) QUERY([WebUser]; & [WebUser]Password=$password) $0:=(Records in selection([WebUser]) = 1) Else $0:=True End if End if `Ist es eine Intranet Verbindung? If (Substring($BrowserIP;1;7) # "192.100.") $0:=False End if
Die Methode WithWildcard lautet:
`Methode WithWildcard `WithWildcard ( String ) -> Boolean `WithWildcard ( Name ) -> Enthält ein Jokerzeichen (@) C_INTEGER($i) C_BOOLEAN($0) C_TEXT($1) $0:=False For($i;1;Length($1)) If (Ascii(Substring($1;$i;1)) = Ascii("@")) $0:=True End if End for
Referenz
Datenbankmethoden, Sicherheit der Verbindung, URLs und Form Actions.