4D v16.3Datenbankmethode On Web Authentication |
||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Datenbankmethode On Web Authentication
|
Parameter | Typ | Beschreibung |
$1 | Text | URL |
$2 | Text | HTTP Kopfteil + HTTP body (32 KB maximum) |
$3 | Text | IP Adresse des Web Client (Browser) |
$4 | Text | IP Adresse des Server |
$5 | Text | Benutzername |
$6 | Text | Kennwort |
$0 | Boolean | Wahr = 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 im Bereich Location des Web Browsers | Wert 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 |
Hinweise:
Hinweis: Gibt es den vom Browser gesendeten Benutzernamen in 4D, wird der Parameter $6 (das Kennwort des Benutzers) aus Sicherheitsgründen nicht zurückgegeben.
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:
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:
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
// 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
Datenbankmethode On Web Connection
Datenbankmethoden
Sicherheit der Verbindung
URLs und Form Actions
Produkt: 4D
Thema: Web Server
4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)