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.
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 |