| 4D v15.4Méthode base Sur authentification Web | |||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v15.4
 Méthode base Sur authentification Web 
         | ||||||||||||||||||||||||||||||||||||||||
| 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éthodeNote : 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 ifExemple 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 ifLa Méthode projet AvecJoker est décrite ci-dessous :
									Méthode base Sur connexion Web
									
									Présentation des méthodes base
									
									Sécurité des connexions
									
									URLs et actions de formulaires
									
 Ajouter un commentaire
Ajouter un commentaire