Compartilhar via


Autenticação (ADSI)

No ADSI, as credenciais que consistem em um nome de usuário e senha são usadas para fornecer ou restringir o acesso a objetos no serviço de diretório. A função ADsGetObject usa as credenciais do thread de chamada para autenticação. A função ADsOpenObject e o método IADsOpenDSObject::OpenDSObject podem ser usados para especificar credenciais diferentes daquelas do thread de chamada. Quando um objeto é vinculado a um usuário autenticado, o usuário tem permissão para acessar o objeto, conforme suportado pelos requisitos de segurança do serviço de diretório subjacente.

Observação

A função ADsOpenObject e o método IADsOpenDSObject::OpenDSObject não devem ser usados para validar credenciais de usuário.

Importante

A Microsoft não recomenda o fluxo de nome de usuário e senha porque o aplicativo solicitará a senha diretamente a um usuário, o que é um padrão inseguro. Na maioria dos cenários, existem fluxos mais seguros que você pode usar.

O exemplo de código a seguir mostra como usar o método OpenDSObject para autenticar um usuário.

Dim MyNamespace As IADsOpenDSObject
Dim X
oUsername=GetUsernameFromSecureConfig() ' Get the username from a secure location (not shown)
oPassword=GetPasswordFromSecureConfig() ' Get the password from a secure location (not shown)

OnError GoTo CleanuUp
 
Set MyNamespace = GetObject("LDAP:")

' For authentication, pass a variable for the user name and password to be used for 
' authentication. For security reasons, it is recommended that you use the ADS_SECURE_AUTHENTICATION flag.
' 
Set X = MyNamespace.OpenDSObject(DN, oUserName, oPassword, ADS_SECURE_AUTHENTICATION)     

CleanUp:
    MsgBox ("An error has occurred.")
    Set MyNamespace = Nothing
    Set X = Nothing