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