4D v16.3

Datenbankmethode On Web Authentication

Home

 
4D v16.3
Datenbankmethode On Web Authentication

Datenbankmethode On Web Authentication  


 

Die Datenbankmethode On Web Authentication verwaltet die Zugriffe auf den Web Server. Sie wird von 4D oder 4D Server aufgerufen, wenn eine Anfrage des Web Browser die Ausführung einer 4D Methode auf dem Server erfordert (Methode, die über eine URL 4DACTION oder 4DCGI, ein Tag 4DSCRIPT, etc. aufgerufen wird).

Diese Methode empfängt die Text Parameter $1, $2, $3, $4, $5 und $6 und gibt einen Boolean Parameter $0 zurück:

ParameterTypBeschreibung

$1
TextURL
$2TextHTTP Kopfteil + HTTP body (32 KB maximum)
$3TextIP Adresse des Web Client (Browser)
$4TextIP Adresse des Server
$5TextBenutzername
$6TextKennwort
$0BooleanWahr = Anfrage angenommen, Falsch = Anfrage abgewiesen

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 Datenbank-Eigenschaften 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 BrowsersWert des Parameters $
    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.

Hinweise: 

  • Aus Performance-Gründen darf die Datengröße, die über den Parameter $2 läuft, nicht größer als 32 KB sein. Was darüber hinaus geht, wird vom 4D HTTP Server abgeschnitten. 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.
    Hinweis: (*) 4D gibt IPv4 Adressen in einem hybrid IPv6/IPv4 Format mit einem 96-bit Prefix zurück, z.B. ::ffff:192.168.2.34 für die IPv4 Adresse 192.168.2.34. Weitere Informationen dazu finden Sie im Abschnitt Unterstützung von IPv6.
  • IP Adresse des Server
    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 Web Server, Einstellungen.
  • 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 Datenbank-Eigenschaften eine Option zur Kennwortverwaltung 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 4DSCRIPT für jede Projektmethode verbieten, wenn Sie im Dialogfenster Methode-Eigenschaften die Option "Zugang per 4D HTML Tags und URLs (4DACTION...)" markieren. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit der Verbindung.

Die Datenbankmethode On Web Authentication wird automatisch aufgerufen, unabhängig vom Modus, wenn eine Anfrage oder Bearbeitung die Ausführung einer 4D 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 4DCGI/ beginnt
  • Wenn 4D eine URL empfängt, die mit 4DSYNC/ beginnt
  • Wenn 4D eine URL empfängt, die eine statische Seite aufruft, die nicht vorhanden ist
  • Wenn 4D eine URL mit Root Zugriff empfängt und in den Datenbank-Eigenschaften oder über den Befehl WEB SET HOME PAGE keine Home Page gesetzt wurde.
  • 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.

Hinweis zur Kompatibilität: Die Datenbankmethode wird auch aufgerufen, wenn 4D eine URL empfängt, die mit 4DMETHOD/ beginnt. Diese URL ist überholt und wird nur zur Wahrung der Kompatibilität beibehalten.

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 für die Datenbankmethode On Web Authentication im BASIC Modus:

  `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

Beispiel für die Datenbankmethode On Web Authentication im DIGEST Modus:

  // Datenbankmethode On Web Authentication
 C_TEXT($1;$2;$5;$6;$3;$4)
 C_TEXT($user)
 C_BOOLEAN($0)
 $0:=False
 $user:=$5
  // Aus Sicherheitsgründen Namen mit @ verweigern
 If(WithWildcard($user))
    $0:=False
  // Die Methode <span class="rte4d_met">WithWildcard</span> folgt unten
 Else
    QUERY([WebUsers];[WebUsers]User=$user)
    If(OK=1)
       $0:=WEB Validate digest($user;[WebUsers]password)
    Else
       $0:=False // Benutzer existiert nicht
    End if
 End if

Die Methode WithWildcard lautet:
  // WithWildcard Methode
  // WithWildcard ( String ) -> Boolean
  // WithWildcard ( Name ) -> Enthält ein Joker-Zeichen
 
 C_LONGINT($i)
 C_BOOLEAN($0)
 C_TEXT($1)
 
 $0:=False
 For($i;1;Length($1))
    If(Character code(Substring($1;$i;1))=Character code("@"))
       $0:=True
    End if
 End for



Siehe auch 

Datenbankmethode On Web Connection
Datenbankmethoden
Sicherheit der Verbindung
URLs und Form Actions

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Web Server

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)