ADSI propose un ensemble d'interfaces de services d'annuaire pour gérer les ressources réseau. L'interface IADsUser et le script ADSI permettent également de modifier le mot de passe d'un utilisateur. J'ai créé deux pages ASP (Active Server Page) démontrant cette procédure. La figure 1 montre la première page, ChangePasswordEntry.asp et le
Utilisation de l’interface IADsUser
Listing 1 le script de cette page.
![]() |
![]() |
![]() |
ChangePasswordEntry.asp est un fichier HTML comportant trois informations cruciales
pour changer le mot de passe d’un utilisateur : le nom d’utilisateur, le mot de
passe précédent et le nouveau mot de passe. Une fois que l’utilisateur a entré
les informations et cliqué sur Soumettre, le script passe la main à ChangePassword1asp.
Ce fichier contient le code du Listing 2, qui change réellement le mot de passe
de l’utilisateur.
Le code du listing 2 fonctionne dans Windows 2000 et Windows NT 4.0 pour les noms
d’utilisateurs stockés localement et ne faisant pas partie d’un domaine ou d’Active
Directory. Le libellé A du listing 2 dimensionne (c’est-à -dire crée) plusieurs
variables utilisées par ChangePassword1.asp. Le dimensionnement rend le code plus
lisible pour les développeurs. Il faut utiliser l’option Explicit dans le code
pour imposer le dimensionnement de toutes les variables.
Le code de la partie B du listing 2 utilise les valeurs 122122nom et mot de passe
de ChangePasswordEntry.asp et les place dans les variables correspondantes créées
par la légende A. L’instruction If de la légende B vérifie si la variable sUser
est en blanc. Si c’est le cas, le code repasse la main à ChangePasswordEntry.asp.
Le code de la partie C du listing démarre véritablement l’activité de ChangePassword1asp.
Lorsque l’on utilise ADSI, il faut communiquer avec un fournisseur ADSI gérant
la ressource à laquelle on se connecte. ChangePassword1.asp utilise le fournisseur
WinNT, lorsque le serveur Web utilise des comptes d’utilisateurs locaux. La première
ligne du libellé C crée la chaîne de connexion et la stocke dans la variable sConnectString
pour commencer le processus de connexion au fournisseur WinNT. La chaîne de connexion
se compose du nom du fournisseur (WinNT), des séparateurs (://), du nom de l’ordinateur
(bigboat) et d’un séparateur final (/). Le libellé C annexe le nom d’utilisateur
et la mention » ,utilisateur » à la chaîne. Le nom d’utilisateur représente l’objet
utilisateur du fournisseur WinNT, qui représente lui-même un compte d’utilisateur.
Une fois la chaîne de connexion créée par l’instruction sConnectString du bloc
de ligne de code C, l’instruction Response.Write la présente en la faisant parvenir
à la suite HTTP. Les instructions de type Response.Write sont superbes pour le
débogage. Après avoir testé le code, vous pouvez les faire précéder d’un guillemet
(?) pour qu’elles ne soient pas exécutées. L’instruction Set oUser du bloc de
lignes de code C lie la variable SetoUser à une instance de l’objet utilisateur
qui représente l’utilisateur spécifié dans la chaîne de connexion.
Les deux instructions Response.Write qui suivent le groupe de lignes de code C
aident à déboguer le code de test, parce qu’elles permettent d’inspecter le nom
d’utilisateur et le mot de passe fournis au cours de l’authentification de base
au serveur. Elles utilisent la collection ServerVariables de l’objet ASP Request.
La première ligne utilise la variable LOGON_USER, qui représente l’utilisateur
couramment connecté. On peut également utiliser la variable REMOTE_USER pour fournir
le compte d’utilisateur. La deuxième ligne fournit le mot de passe de l’utilisateur
à partir de la variable AUTH_PASSWORD, si l’utilisateur est connecté avec l’authentification
De base.
La ligne qui change le mot de passe est
oUser.ChangePassword sPassword, sNewPassword
du libellé D. Le premier paramètre de ChangePassword est le mot de passe courant
de l’utilisateur (sPassword). Le second est son nouveau mot de passe (sNewPassword).
Une fois l’exécution du script terminée, le nouveau mot de passe entre en vigueur.
La figure 2 montre le formulaire ChangePasswordEntry.asp en action : j’ai saisi
un nom d’utilisateur, le mot de passe courant ainsi que le nouveau mot de passe.
Lorsque je clique sur Soumettre, ChangePassword1.asp s’exécute. La figure 3 montre
les résultats renvoyés par les instructions Response.Write. Si j’entre un mot
de passe existant incorrect, ADSI me signale que le mot de passe n’est pas correct,
comme le montre la figure 4. ADSI ne permettra pas aux utilisateurs, ne disposant
pas des références adéquates, de changer leurs mots de passe.
![]() |
![]() |
Lorsqu’on utilise ADSI ou toute autre technique pour changer le mot de passe d’un
utilisateur par le biais d’une interface Web, il faut configurer les pages pour
qu’elles s’exécutent sous HTTPS (HTTP over Secure Sockets Layer), qui crypte les
informations des comptes d’utilisateurs pour qu’elles ne soient pas transmises
en texte clair.
Téléchargez cette ressource
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
A travers cette chaîne
A travers ITPro
- Et si les clients n’avaient plus le choix ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Chiffrements symétrique vs asymétrique
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
Les plus consultés sur iTPro.fr
- IA de confiance : le facteur clé pour rentabiliser les projets d’entreprise
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Hôpitaux virtuels : renforcer le système de santé français grâce au numérique
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC





