4D v16.3CHANGE CURRENT USER |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
CHANGE CURRENT USER
CHANGE CURRENT USER
CHANGE CURRENT USER permet de changer l'identité de l'utilisateur courant dans la base, sans devoir la quitter. Le changement d'identité peut être effectué par l'utilisateur lui-même via la boîte de dialogue de connexion à la base (lorsque la commande est appelée sans paramètres) ou directement par la commande. Lorsqu'il change d'identité, l'utilisateur abandonne ses anciens privilèges au profit de ceux de l'utilisateur choisi. Le nouveau compte est utilisé pour tous les process “utilisateurs” courants de la base. A noter qu’un process créé par un autre process hérite du compte utilisateur de celui-ci. 4D Server : Sur le poste serveur, les process démarrés via les On Server Startup database method, On Server Shutdown database method, etc., sont exécutés sous le compte du Super_Utilisateur. Si la commande CHANGE CURRENT USER est exécutée sans paramètres, la boîte de dialogue de connexion à la base s'affiche. L'utilisateur doit alors saisir ou sélectionner un nom et un mot de passe valides pour entrer dans la base. Le contenu de la boîte de dialogue de connexion dépend des options définies dans la page Sécurité des Propriétés de la base. Note : Cette commande requiert que le système de contrôle d'accès soit activé, c'est-à-dire qu'un mot de passe soit assigné au Super_Utilisateur. Dans le cas contraire, CHANGE CURRENT USER est sans effet et n'affichera pas la fenêtre standard de changement d'utilisateur. Vous pouvez également passer les deux paramètres facultatifs utilisateur et motDePasse afin de spécifier par programmation le nouveau compte à utiliser.
Si le compte d’utilisateur désigné n’existe pas ou a été supprimé, l’erreur -9979 est générée. Vous pouvez intercepter cette erreur avec une méthode de gestion d’erreurs installée par la commande ON ERR CALL. Sinon, vous pouvez appeler la fonction Is user deleted pour tester le compte utilisateur avant d’appeler cette commande. Passez dans le paramètre motDePasse le mot de passe non crypté du compte de l’utilisateur. Si le mot de passe ne correspond pas à l’utilisateur, la commande ne fait rien et l’erreur -9978 est générée. La commande est temporisée afin d’éviter des attaques par “force brute” (essais automatiques de multiples combinaisons de noms d’utilisateurs/mots de passe). Ainsi, au bout du quatrième appel à la commande, elle n’est exécutée qu’après 10 secondes d’attente. Cette temporisation est globale au poste de travail. La commande CHANGE CURRENT USER permet de mettre en place des boîtes de dialogue personnalisées pour la saisie du nom et du mot de passe (avec règles de saisie et d'expiration) tout en bénéficiant des avantages du système intégré de contrôle des accès de 4D. 1. L’entrée dans la base s’effectue directement en mode “Utilisateur par défaut”, sans boîte de dialogue. 2. Dans la On Startup database method, le développeur provoque l’affichage d’une boîte de dialogue personnalisée de saisie du nom d’utilisateur et du mot de passe (à l’aide de la commande DIALOG ou ADD RECORD par exemple). Tout type de traitement peut être envisagé dans la boîte de dialogue : 3. Lorsque la saisie est validée, les informations requises (nom d’utilisateur et mot de passe) sont passées à la commande CHANGE CURRENT USER afin d’ouvrir la base avec les privilèges du compte utilisateur. L'exemple suivant affiche la boîte de dialogue de connexion : CHANGE CURRENT USER
Voir aussi
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
Modifié : 4D 2004 UTILISATION DE L'ARTICLE
4D - Langage ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||