IADsUser::SetPassword-Methode (iads.h)

Die IADsUser::SetPassword-Methode legt das Benutzerkennwort auf einen angegebenen Wert fest. Für den LDAP-Anbieter muss das Benutzerkonto erstellt und im zugrunde liegenden Verzeichnis mit IADs::SetInfo gespeichert worden sein, bevor IADsUser::SetPassword aufgerufen wird.

Mit dem WinNT-Anbieter können Sie jedoch das Kennwort für ein neu erstelltes Benutzerobjekt festlegen, bevor SetInfo aufgerufen wird. Dadurch wird sichergestellt, dass Sie Kennwörter erstellen, die der Systemkennwortrichtlinie entsprechen, bevor Sie das Benutzerkonto erstellen.

Syntax

HRESULT SetPassword(
  BSTR NewPassword
);

Parameter

NewPassword

Ein BSTR , der das neue Kennwort enthält.

Rückgabewert

Diese Methode unterstützt die Standardrückgabewerte, einschließlich S_OK. Weitere Rückgabewerte finden Sie unter ADSI-Fehlercodes.

Hinweise

Der LDAP-Anbieter für Active Directory verwendet einen von drei Prozessen, um das Kennwort festzulegen. LDAP-Verzeichnisse von Drittanbietern wie iPlanet verwenden diesen Kennwortauthentifizierungsprozess nicht. Die Methode kann je nach Netzwerkkonfiguration variieren. Versuche, das Kennwort festzulegen, erfolgen in der folgenden Reihenfolge:

  • Zunächst versucht der LDAP-Anbieter, LDAP über eine 128-Bit-SSL-Verbindung zu verwenden. Damit LDAP-SSL erfolgreich ausgeführt werden kann, muss auf dem LDAP-Server das entsprechende Serverauthentifizierungszertifikat installiert sein, und die Clients, auf denen der ADSI-Code ausgeführt wird, müssen der Autorität vertrauen, die diese Zertifikate ausgestellt hat. Sowohl der Server als auch der Client müssen die 128-Bit-Verschlüsselung unterstützen.
  • Wenn die SSL-Verbindung nicht erfolgreich ist, versucht der LDAP-Anbieter, Kerberos zu verwenden.
  • Drittens: Wenn Kerberos nicht erfolgreich ist, versucht der LDAP-Anbieter einen NetUserSetInfo-API-Aufruf . In früheren Versionen hat ADSI netUserSetInfo im Sicherheitskontext aufgerufen, in dem der Thread ausgeführt wurde, und nicht im Sicherheitskontext, der im Aufruf von IADsOpenDSObject::OpenDSObject oder ADsOpenObject angegeben wurde. In späteren Versionen wurde dies geändert, sodass der ADSI-LDAP-Anbieter die Identität des im OpenDSObject-Aufruf angegebenen Benutzers angibt, wenn netUserSetInfo aufgerufen wird.
In Active Directory muss der Aufrufer über das erweiterte Zugriffssteuerungsrecht Kennwort zurücksetzen verfügen, um das Kennwort mit dieser Methode festzulegen.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sie das Benutzerkennwort festlegen, wenn Sie über die entsprechende Berechtigung verfügen.

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

Im folgenden Codebeispiel wird gezeigt, wie Sie das Benutzerkennwort festlegen, wenn Sie über die entsprechende Berechtigung verfügen.

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll

Weitere Informationen

ADSI-Fehlercodes

IADs::SetInfo

IADsMembers

IADsServiceOperations

IADsUser

Methoden der IADsUser-Eigenschaft

NetUserSetInfo