Méthode IADsUser ::ChangePassword (iads.h)
La méthode IADsUser ::ChangePassword remplace le mot de passe utilisateur de l’ancienne valeur spécifiée par une nouvelle valeur.
Syntaxe
HRESULT ChangePassword(
[in] BSTR bstrOldPassword,
[out] BSTR bstrNewPassword
);
Paramètres
[in] bstrOldPassword
BSTR qui contient le mot de passe actuel.
[out] bstrNewPassword
BSTR qui contient le nouveau mot de passe.
Valeur retournée
Cette méthode prend en charge les valeurs de retour standard, y compris S_OK. Pour plus d’informations et d’autres valeurs de retour, consultez Codes d’erreur ADSI.
Remarques
IADsUser ::ChangePassword fonctionne de la même façon que IADsUser ::SetPassword , car il utilise l’une des trois méthodes pour essayer de modifier le mot de passe. Initialement, le fournisseur LDAP tente une opération de modification de mot de passe LDAP si une connexion SSL sécurisée au serveur est établie. Si cette tentative échoue, le fournisseur LDAP tentera ensuite d’utiliser Kerberos (voir IADsUser ::SetPassword pour connaître certains problèmes pouvant survenir sur Windows avec l’authentification inter-forêts), et si cela échoue également, il appellera finalement l’API de gestion réseau spécifique à Active Directory, NetUserChangePassword.
Dans Active Directory, l’appelant doit disposer du droit de contrôle étendu Modifier le mot de passe pour modifier le mot de passe avec cette méthode.
Exemples
L’exemple de code suivant montre comment modifier un mot de passe utilisateur.
Dim usr As IADsUser
Dim szOldPass As String
Dim szNewPass As String
On Error GoTo Cleanup
Set usr = GetObject("WinNT://Fabrikam/JeffSmith,user")
' Add code to securely retrieve the old and new password.
usr.ChangePassword szOldPass, szNewPass
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set usr = Nothing
L’exemple de code suivant montre comment modifier un mot de passe utilisateur.
HRESULT ChangePassword(
IADsUser *pUser,
LPWSTR oldPasswd,
LPWSTR newPasswd)
{
HRESULT hr=S_OK;
if(!pUser) { return E_FAIL;}
hr = pUser->ChangePassword(oldPasswd, newPasswd);
printf("User password has been changed");
return hr;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | iads.h |
DLL | Activeds.dll |