Поделиться через


Метод IADsUser::SetPassword (iads.h)

Метод IADsUser::SetPassword задает для пароля пользователя указанное значение. Для поставщика LDAP учетная запись пользователя должна быть создана и сохранена в базовом каталоге с помощью IADs::SetInfo перед вызовом IADsUser::SetPassword .

Однако поставщик WinNT позволяет задать пароль для созданного объекта пользователя перед вызовом SetInfo. Это гарантирует, что вы создадите пароли, соответствующие системной политике паролей, перед созданием учетной записи пользователя.

Синтаксис

HRESULT SetPassword(
  BSTR NewPassword
);

Параметры

NewPassword

Объект BSTR, содержащий новый пароль.

Возвращаемое значение

Этот метод поддерживает стандартные возвращаемые значения, включая S_OK. Другие возвращаемые значения см. в разделе Коды ошибок ADSI.

Комментарии

Поставщик LDAP для Active Directory использует один из трех процессов для установки пароля; Сторонние каталоги LDAP, такие как iPlanet, не используют этот процесс проверки подлинности пароля. Метод может отличаться в зависимости от конфигурации сети. Попытки установить пароль выполняются в следующем порядке:

  • Во-первых, поставщик LDAP пытается использовать LDAP через 128-разрядное SSL-подключение. Для успешной работы ПРОТОКОЛА SSL LDAP на сервере LDAP должен быть установлен соответствующий сертификат проверки подлинности сервера, а клиенты, выполняющие код ADSI, должны доверять центру, который выдал эти сертификаты. Сервер и клиент должны поддерживать 128-разрядное шифрование.
  • Во-вторых, если SSL-подключение завершается неудачно, поставщик LDAP пытается использовать Kerberos.
  • В-третьих, если kerberos завершается неудачно, поставщик LDAP пытается вызвать API NetUserSetInfo . В предыдущих выпусках ADSI вызывал NetUserSetInfo в контексте безопасности, в котором выполнялся поток, а не в контексте безопасности, указанном в вызове IADsOpenDSObject::OpenDSObject или ADsOpenObject. В более поздних выпусках это значение было изменено таким образом, что поставщик ADSI LDAP олицетворял пользователя, указанного в вызове OpenDSObject , при вызове NetUserSetInfo.
В Active Directory вызывающий объект должен иметь право на расширенный контроль сброса пароля , чтобы задать пароль с помощью этого метода.

Примеры

В следующем примере кода показано, как задать пароль пользователя, если у вас есть разрешение на это.

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

В следующем примере кода показано, как задать пароль пользователя, если у вас есть разрешение на это.

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

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header iads.h
DLL Activeds.dll

См. также раздел

Коды ошибок ADSI

IADs::SetInfo

IADsMembers

IADsServiceOperations

IADsUser

Методы свойств IADsUser

NetUserSetInfo