Configurando e alterando senhas de usuário com o provedor LDAP
Para definir uma senha de usuário, use o método IADsUser.SetPassword.
O provedor LDAP para Active Directory usa um dos três processos para definir a senha (diretórios LDAP de terceiros, como o iPlanet, não usam esse processo de autenticação de senha). O método pode variar de acordo com a configuração da rede. Os métodos de definição de senha ocorrem na seguinte ordem:
- Primeiro, o provedor LDAP tenta usar o Kerberos.
- Em segundo lugar, se o Kerberos não for bem-sucedido, o provedor LDAP tentará estabelecer uma conexão LDAP segura. Para que o Secure LDAP funcione 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 oferecer suporte a criptografia de pelo menos 128 bits.
- Terceiro, se a conexão LDAP segura não for bem-sucedida, o provedor LDAP tentará uma chamada à API NetUserSetInfo. Nas versões anteriores, o ADSI chamava 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 ele chamasse NetUserSetInfo.
Para alterar uma senha de usuário, use o método IADsUser.ChangePassword. Como SetPassword, esse método pode usar vários processos para alterar a senha. Os métodos de alteração de senha ocorrem na mesma ordem:
- Primeiro, o provedor LDAP tenta usar o Kerberos.
- Em segundo lugar, o provedor LDAP tenta usar o LDAP seguro.
- Terceiro, se a conexão LDAP segura não for bem-sucedida, o provedor LDAP tentará uma chamada de API NetUserChangePassword. Assim como SetPassword, em versões anteriores, o provedor LDAP ADSI representa as credenciais de usuário passadas usando o método IADsOpenDSObject.OpenDSObject ou a função ADsOpenObject .