Autenticación (ADSI)
En ADSI, las credenciales que constan de un nombre de usuario y una contraseña se usan para proporcionar o restringir el acceso a objetos en el servicio de directorio. La función ADsGetObject usa las credenciales del subproceso que realiza la llamada para la autenticación. La función ADsOpenObject y el método IADsOpenDSObject::OpenDSObject se pueden usar para especificar credenciales distintas de las del subproceso que realiza la llamada. Cuando un objeto está enlazado a con un usuario autenticado, el usuario puede acceder al objeto según lo admita los requisitos de seguridad del servicio de directorio subyacentes.
Nota:
La función ADsOpenObject y el método IADsOpenDSObject::OpenDSObject no se deben usar para validar las credenciales de usuario.
Importante
Microsoft no recomienda el flujo de nombre de usuario y contraseña porque la aplicación pedirá a un usuario su contraseña directamente, que es un patrón no seguro. En la mayoría de los escenarios, existen flujos más seguros que puede usar.
En el ejemplo de código siguiente se muestra cómo usar el método OpenDSObject para autenticar a un usuario.
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