IADsUser::SetPassword, méthode (iads.h)

La méthode IADsUser::SetPassword définit le mot de passe utilisateur sur une valeur spécifiée. Pour le fournisseur LDAP, le compte d’utilisateur doit avoir été créé et stocké dans le répertoire sous-jacent à l’aide de IADs::SetInfo avant que IADsUser::SetPassword soit appelé.

Le fournisseur WinNT, toutefois, vous permet de définir le mot de passe sur un objet utilisateur nouvellement créé avant d’appeler SetInfo. Cela garantit que vous créez des mots de passe conformes à la stratégie de mot de passe système avant de créer le compte d’utilisateur.

Syntaxe

HRESULT SetPassword(
  BSTR NewPassword
);

Paramètres

NewPassword

BSTR qui contient le nouveau mot de passe.

Valeur retournée

Cette méthode prend en charge les valeurs de retour standard, y compris les S_OK. Pour obtenir d’autres valeurs de retour, consultez Codes d’erreur ADSI.

Notes

Le fournisseur LDAP pour Active Directory utilise l’un des trois processus pour définir le mot de passe ; les répertoires LDAP tiers tels qu’iPlanet n’utilisent pas ce processus d’authentification par mot de passe. La méthode peut varier en fonction de la configuration réseau. Les tentatives de définition du mot de passe se produisent dans l’ordre suivant :

  • Tout d’abord, le fournisseur LDAP tente d’utiliser LDAP sur une connexion SSL 128 bits. Pour que LE PROTOCOLE SSL LDAP fonctionne correctement, le certificat d’authentification de serveur approprié doit être installé sur le serveur LDAP et les clients exécutant le code ADSI doivent approuver l’autorité qui a émis ces certificats. Le serveur et le client doivent prendre en charge le chiffrement 128 bits.
  • Deuxièmement, si la connexion SSL échoue, le fournisseur LDAP tente d’utiliser Kerberos.
  • Troisièmement, si Kerberos échoue, le fournisseur LDAP tente un appel d’API NetUserSetInfo . Dans les versions précédentes, ADSI appelait NetUserSetInfo dans le contexte de sécurité dans lequel le thread s’exécutait, et non dans le contexte de sécurité spécifié dans l’appel à IADsOpenDSObject::OpenDSObject ou ADsOpenObject. Dans les versions ultérieures, cela a été modifié afin que le fournisseur LDAP ADSI emprunte l’identité de l’utilisateur spécifié dans l’appel OpenDSObject lorsqu’il appelle NetUserSetInfo.
Dans Active Directory, l’appelant doit disposer du droit d’accès au contrôle étendu Réinitialiser le mot de passe pour définir le mot de passe avec cette méthode.

Exemples

L’exemple de code suivant montre comment définir le mot de passe utilisateur, si vous avez l’autorisation de le faire.

Dim usr As IADsUser
Dim szPassword As String
On Error GoTo Cleanup

' Add code to securely get the password.

Set usr = GetObject("LDAP://MyLdapSvr/CN=JeffSmith,DC=Fabrikam")
usr.SetPassword szPassword

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 définir le mot de passe utilisateur, si vous avez l’autorisation de le faire.

HRESULT SetPassword(IADsUser *pUser, BSTR password)
{
    HRESULT hr=S_OK;
    if(!pUser) { return E_FAIL;}
    hr = pUser->SetPassword(password);
    if (hr == S_OK) printf("User password has been set");
    pUser->Release();
    return hr;
}

Spécifications

   
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

IADs::SetInfo

IADsMembers

IADsServiceOperations

IADsUser

IADsUser, méthodes de propriété

NetUserSetInfo