Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
On Web Authentication database method
|
$1, $2, $3, $4, $5, $6 -> On Web Authentication database method -> $0 | ||||||||
Paramètre | Type | Description | ||||||
$1 | Texte |
![]() |
URL | |||||
$2 | Texte |
![]() |
En-tête + Corps HTTP | |||||
$3 | Texte |
![]() |
Adresse IP du navigateur | |||||
$4 | Texte |
![]() |
Adresse IP appelée du serveur | |||||
$5 | Texte |
![]() |
Nom d’utilisateur | |||||
$6 | Texte |
![]() |
Mot de passe | |||||
$0 | Booléen |
![]() |
Vrai = requête acceptée, Faux = requête rejetée | |||||
La On Web Authentication database method est chargée de gérer les accès au moteur de serveur Web. Elle est automatiquement appelée par 4D ou 4D Server lorsqu'une requête d'un navigateur Web requiert l'exécution d'une méthode 4D sur le serveur (appel d'une méthode via un URL 4DACTION, une balise 4DSCRIPT, etc.).
La On Web Authentication database method reçoit six paramètres de type Texte, passés par 4D ($1, $2, $3, $4, $5 et $6), et retourne un booléen, $0. Voici la description de ces paramètres :
Paramètres | Type | Description |
$1 | Texte | URL |
$2 | Texte | En-tête + Corps HTTP (32 ko maximum) |
$3 | Texte | Adresse IP du navigateur |
$4 | Texte | Adresse IP appelée du serveur |
$5 | Texte | Nom d’utilisateur |
$6 | Texte | Mot de passe |
$0 | Booléen | Vrai = requête acceptée, Faux = requête rejetée |
Vous devez déclarer ces paramètres de la manière suivante :
` Méthode base Sur authentification Web
C_TEXT($1;$2;$3;$4;$5;$6)
C_BOOLEAN($0)
` Code pour la méthode
Note : Tous les paramètres de la On Web Authentication database method ne sont pas forcément remplis. Les informations reçues par la méthode base dépendent des options que vous avez sélectionnées dans la boîte de dialogue des Propriétés de la base. Référez-vous à la section Sécurité des connexions.
URL saisi dans le navigateur Web | Valeur du paramètre $1 |
123.4.567.89 | / |
http://123.4.567.89 | / |
123.4.567.89/Clients | /Clients |
http://123.4.567.89/Clients | /Clients |
http://123.4.567.89/Clients/Ajouter | /Clients/Ajouter |
123.4.567.89/Faire_ceci/Si_OK/Faire_cela | /Faire_ceci/Si_OK/Faire_cela |
Notes :
Note : Si le nom d’utilisateur envoyé par le navigateur existe dans 4D, pour des raisons de confidentialité le paramètre $6 n’est alors pas rempli (il reçoit une chaîne vide).
La On Web Connection database method n’est exécutée que si la connexion est acceptée par Sur authentification Web.
ATTENTION : Si aucune valeur n’est passée dans $0, ou si $0 n’est pas définie dans la On Web Authentication database method, la connexion sera considérée comme acceptée, et la On Web Connection database method sera exécutée.
Notes :
La On Web Authentication database method est automatiquement appelée, quel que soit le mode, lorsqu’une requête ou un traitement nécessite l'exécution d'une méthode 4D. Elle est également appelée lorsque le serveur Web reçoit un URL statique invalide (par exemple, si la page statique demandée n'existe pas).
La On Web Authentication database method est donc appelée dans les cas suivants :
A noter que la On Web Authentication database method n'est PAS appelée lorsque le serveur reçoit un URL demandant une page statique valide.
Exemple de On Web Authentication database method en mode BASIC :
`Méthode base Sur authentification Web
C_TEXT($5;$6;$3;$4)
C_TEXT($utilisateur;$motPasse;$IPBrowser;$IPServer)
C_BOOLEAN($utilisateur4D)
ARRAY TEXT($utilisateurs;0)
ARRAY LONGINT($nums;0)
C_LONGINT($upos)
C_BOOLEAN($0)
$0:=False
$utilisateur:=$5
$motPasse:=$6
$IPBrowser:=$3
$IPServer:=$4
`Pour des raisons de sécurité, refuser les noms qui contiennent @
If(AvecJoker($utilisateur)|AvecJoker($motPasse))
$0:=False
`La méthode AvecJoker est décrite ci-dessous
Else
`Vérifier si c’est un utilisateur 4D
GET USER LIST($utilisateurs;$nums)
$upos:=Find in array($utilisateurs;$utilisateur)
If($upos >0)
$utilisateur4D:=Not(Is user deleted($nums{$upos}))
Else
$utilisateur4D:=False
End if
If(Not($utilisateur4D))
`Ce n’est pas un utilisateur défini dans 4D, chercher dans la table des utilisateurs Web
QUERY([WebUsers];[WebUsers]User=$utilisateur;*)
QUERY([WebUsers]; & [WebUsers]Password=$motPasse)
$0:=(Records in selection([WebUsers])=1)
Else
$0:=True
End if
End if
`Est-ce une connexion intranet ?
If(Substring($IPBrowser;1;7)#"192.100.")
$0:=False
End if
Exemple de méthode base Sur authentification Web en mode DIGEST :
` Méthode base Sur authentification Web
C_TEXT($1;$2;$5;$6;$3;$4)
C_TEXT($utilisateur)
C_BOOLEAN($0)
$0:=False
$utilisateur:=$5
`Pour des raisons de sécurité, refuser les noms qui contiennent @
If(AvecJoker($utilisateur))
$0:=False
`La méthode AvecJoker est décrite ci-dessous
Else
QUERY([WebUsers];[WebUsers]User=$utilisateur)
If(OK=1)
$0:=WEB Validate digest($utilisateur;[WebUsers]Mdp)
Else
$0:=False `Utilisateur inexistant
End if
End if
La Méthode projet AvecJoker est décrite ci-dessous:
`Méthode projet AvecJoker
`AvecJoker ( Chaine ) -> Booléen
`AvecJoker ( Nom ) -> Contient un joker
C_INTEGER($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
Produit : 4D
Thème : Méthodes base
Modifié : 4D v13
4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)