La Méthode base Sur connexion Web peut être appelée dans les cas suivants :
- le serveur Web reçoit une requête débutant par l'URL 4DCGI.
- le serveur Web reçoit une requête invalide.
Pour plus d'informations, reportez-vous ci-dessous au paragraphe “Appels de la Méthode base Sur connexion Web”.
Note de compatibilité : La méthode base est également appelée en cas de création d'un contexte en mode contextuel (mode obsolète pouvant être utilisé dans les bases 4D converties).
La requête doit auparavant avoir été "acceptée" par la Méthode base Sur authentification Web (si elle existe) et le serveur Web doit être lancé.
La Méthode base Sur connexion Web reçoit six paramètres de type Texte, passés par 4D ($1, $2, $3, $4, $5 et $6). Voici leur description :
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 |
Vous devez déclarer ces six paramètres de la manière suivante :
- Données supplémentaires de l’URL
Le premier paramètre ($1) est l’URL saisi par l'utilisateur dans la zone 'Adresse' de son navigateur Web, moins l’adresse hôte.
Prenons l’exemple d’une connexion Intranet. Supposons que l’adresse IP de votre machine serveur Web 4D est 123.4.567.89. Le tableau suivant liste les valeurs de $1 selon l’URLsaisi dans le navigateur Web :
URL saisi dans le navigateur | 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 |
Notez que vous êtes libre d'utiliser ce paramètre à votre convenance. 4D ignore simplement les valeurs passées au-delà de la partie hôte de l’URL. Par exemple, vous pouvez établir une convention dans laquelle la valeur "/Clients/Ajouter" signifie “aller directement à l'ajout d'un nouvel enregistrement dans la table [Clients].” En fournissant aux utilisateurs Web de votre base une liste des valeurs possibles et/ou des marqueurs par défaut, vous pouvez proposer des raccourcis vers différentes parties de votre application. Ainsi, les utilisateurs Web peuvent accéder rapidement aux ressources de votre site Web sans devoir naviguer dans toute la base à chaque connexion.
ATTENTION : Pour empêcher un utilisateur d'accéder directement à une base à l'aide d'un marqueur créé pendant une session précédente, 4D intercepte tout URL correspondant à un des URLs standard de 4D.
- En-tête et corps de la requête HTTP
Le deuxième paramètre ($2) est l'en-tête suivi du corps de la requête HTTP envoyée par le navigateur Web. Notez que ces informations sont passées telles quelles à votre Méthode base Sur connexion Web. Le contenu varie en fonction du type de navigateur Web qui tente de se connecter.
Avec Safari sous Mac OS, vous recevrez un en-tête semblable à celui-ci :
GET /favicon.ico HTTP/1.1
Referer: http://123.45.67.89/4dcgi/test
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr-fr) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10
Cache-Control: max-age=0
Accept: */*
Accept-Language: fr-fr
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: 123.45.67.89
Avec Microsoft Internet Explorer 8 sous Windows, vous recevrez un en-tête semblable à celui-ci : GET / HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Accept-Language: fr-FR
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Accept-Encoding: gzip, deflate
Host: 123.45.67.89
Connection: Keep-Alive
Si votre application exploite ces informations, il est de votre ressort d'analyser l'en-tête et le corps.
Note : Pour des raisons de performances, la taille de ces données ne peut dépasser 32 Ko. Au-delà, elles sont tronquées par le serveur HTTP de 4D.
- Adresse IP du navigateur
Le troisième paramètre ($3) reçoit l’adresse IP de la machine du navigateur. Cette information peut vous permettre, en particulier, de distinguer les connexions Intranet des connexions Internet.
- Adresse IP demandée du serveur
Le quatrième paramètre ($4) reçoit l’adresse IP demandée du serveur Web 4D. En effet, 4D autorise le multi-homing, permettant d’exploiter des machines disposant de plusieurs adresses IP. Pour plus d’informations sur ce point, reportez-vous à la section Paramétrages du serveur Web.
- Nom d'utilisateur et Mot de passe
Les paramètres $5 et $6 reçoivent le nom d’utilisateur et le mot de passe saisis par l’utilisateur dans la boîte de dialogue standard d’identification affichée par le navigateur, le cas échéant.
Cette boîte de dialogue apparaît pour chaque connexion dès que l’option Utiliser les mots de passe est cochée dans les Propriétés de la base (cf. section Sécurité des connexions).
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 Méthode base Sur connexion Web peut être utilisée comme point d'entrée dans le serveur Web 4D, soit à l'aide de l'URL spécial 4DCGI, soit à l'aide d'URLs de commande personnalisés.
Attention : L’appel d’une commande 4D affichant un élément d’interface (ALERTE, DIALOGUE...) entraîne l’arrêt du traitement de la méthode.
La Méthode base Sur connexion Web est donc appelée dans les cas suivants :
- lorsque 4D reçoit l’URL /4DCGI. La méthode base est appelée avec l’URL /4DCGI/<action> dans $1.
- lorsqu’une page Web appelée avec un URL du type <chemin>/<fichier> n’est pas trouvée. La méthode base est appelée avec l’URL (*).
- lorsqu’une page Web est appelée avec un URL du type <chemin>/ et qu’aucune page d’accueil par défaut n’est définie. La méthode base est appelée avec l’URL (*).
(*) Dans ces cas particuliers, l’URL reçu dans $1 ne débute pas par le caractère "/".