Condividi tramite


Metodo IADsUser::SetPassword (iads.h)

Il metodo IADsUser::SetPassword imposta la password utente su un valore specificato. Per il provider LDAP, l'account utente deve essere stato creato e archiviato nella directory sottostante usando IADs::SetInfo prima che venga chiamato IADsUser::SetPassword .

Il provider WinNT, tuttavia, consente di impostare la password su un oggetto utente appena creato prima di chiamare SetInfo. In questo modo è possibile creare password conformi ai criteri password di sistema prima di creare l'account utente.

Sintassi

HRESULT SetPassword(
  BSTR NewPassword
);

Parametri

NewPassword

BSTR che contiene la nuova password.

Valore restituito

Questo metodo supporta i valori restituiti standard, inclusi i S_OK. Per altri valori restituiti, vedere Codici di errore ADSI.

Commenti

Il provider LDAP per Active Directory usa uno dei tre processi per impostare la password; Le directory LDAP di terze parti, ad esempio iPlanet, non usano questo processo di autenticazione della password. Il metodo può variare in base alla configurazione di rete. I tentativi di impostare la password si verificano nell'ordine seguente:

  • Innanzitutto, il provider LDAP tenta di usare LDAP tramite una connessione SSL a 128 bit. Affinché LDAP SSL funzioni correttamente, il server LDAP deve avere installato il certificato di autenticazione server appropriato e i client che eseguono il codice ADSI devono considerare attendibile l'autorità che ha emesso tali certificati. Sia il server che il client devono supportare la crittografia a 128 bit.
  • In secondo luogo, se la connessione SSL non riesce, il provider LDAP tenta di usare Kerberos.
  • In terzo luogo, se Kerberos non riesce, il provider LDAP tenta una chiamata API NetUserSetInfo . Nelle versioni precedenti, ADSI ha chiamato NetUserSetInfo nel contesto di sicurezza in cui era in esecuzione il thread e non il contesto di sicurezza specificato nella chiamata a IADsOpenDSObject::OpenDSObject o ADsOpenObject. Nelle versioni successive questa modifica è stata modificata in modo che il provider LDAP ADSI rappresenta l'utente specificato nella chiamata OpenDSObject quando chiama NetUserSetInfo.
In Active Directory il chiamante deve avere il diritto di accesso di controllo esteso reimpostazione password per impostare la password con questo metodo.

Esempio

Nell'esempio di codice seguente viene illustrato come impostare la password dell'utente, se si dispone dell'autorizzazione per eseguire questa operazione.

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

Nell'esempio di codice seguente viene illustrato come impostare la password dell'utente, se si dispone dell'autorizzazione per eseguire questa operazione.

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;
}

Requisiti

   
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione iads.h
DLL Activeds.dll

Vedi anche

Codici di errore ADSI

ID::SetInfo

IADsMembers

IADsServiceOperations

IADsUser

Metodi di proprietà IADsUser

NetUserSetInfo