Compartilhar via


Método IADsUser::SetPassword (iads.h)

O método IADsUser::SetPassword define a senha do usuário como um valor especificado. Para o provedor LDAP, a conta de usuário deve ter sido criada e armazenada no diretório subjacente usando IADs::SetInfo antes de IADsUser::SetPassword ser chamado.

No entanto, o provedor WinNT permite que você defina a senha em um objeto de usuário recém-criado antes de chamar SetInfo. Isso garante que você crie senhas que estejam em conformidade com a política de senha do sistema antes de criar a conta de usuário.

Sintaxe

HRESULT SetPassword(
  BSTR NewPassword
);

Parâmetros

NewPassword

Um BSTR que contém a nova senha.

Valor retornado

Esse método dá suporte aos valores retornados padrão, incluindo S_OK. Para outros valores retornados, consulte Códigos de erro ADSI.

Comentários

O provedor LDAP para Active Directory usa um dos três processos para definir a senha; Diretórios LDAP de terceiros, como iPlanet, não usam esse processo de autenticação de senha. O método pode variar de acordo com a configuração de rede. As tentativas de definir a senha ocorrem na seguinte ordem:

  • Primeiro, o provedor LDAP tenta usar o LDAP em uma conexão SSL de 128 bits. Para que o LDAP SSL opere com êxito, o servidor LDAP deve ter o certificado de autenticação de servidor apropriado instalado e os clientes que executam o código ADSI devem confiar na autoridade que emitiu esses certificados. O servidor e o cliente devem dar suporte à criptografia de 128 bits.
  • Em segundo lugar, se a conexão SSL não for bem-sucedida, o provedor LDAP tentará usar Kerberos.
  • Em terceiro lugar, se Kerberos não for bem-sucedido, o provedor LDAP tentará uma chamada à API NetUserSetInfo . Em versões anteriores, ADSI chamou NetUserSetInfo no contexto de segurança no qual o thread estava em execução e não o contexto de segurança especificado na chamada para IADsOpenDSObject::OpenDSObject ou ADsOpenObject. Em versões posteriores, isso foi alterado para que o provedor LDAP ADSI representasse o usuário especificado na chamada OpenDSObject quando chama NetUserSetInfo.
No Active Directory, o chamador deve ter o direito de acesso de controle estendido Redefinir Senha para definir a senha com esse método.

Exemplos

O exemplo de código a seguir mostra como definir a senha do usuário, se você tiver permissão para fazer isso.

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

O exemplo de código a seguir mostra como definir a senha do usuário, se você tiver permissão para fazer isso.

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

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho iads.h
DLL Activeds.dll

Confira também

Códigos de erro ADSI

IADs::SetInfo

IADsMembers

IADsServiceOperations

Iadsuser

Métodos de propriedade IADsUser

NetUserSetInfo