Datenbankmethode On Web Authentication

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

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:

ParameterTypBeschreibung
$1TextURL
$2TextHTTP Kopfteil
$3TextIP Adresse des Web Client (Browser)
$4TextIP Adresse des Server
$5TextBenutzername
$6TextKennwort

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.


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next