Метод 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.
Примеры
В следующем примере кода показано, как задать пароль пользователя, если у вас есть разрешение на это.
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 |