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