Partager via


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

Voir aussi

Codes d’erreur ADSI

IADsUser

IADsUser, méthodes de propriété