身份验证 (ADSI)

在 ADSI 中,包含用户名和密码的凭据用于提供或限制对目录服务中的对象的访问。 ADsGetObject 函数使用调用线程的凭据进行身份验证。 ADsOpenObject 函数和 IADsOpenDSObject::OpenDSObject 方法可用于指定调用线程以外的凭据。 当对象与经过身份验证的用户绑定时,用户可以访问受基础目录服务安全要求支持的对象。

注意

ADsOpenObject 函数和 IADsOpenDSObject::OpenDSObject 方法不应用于验证用户凭据。

重要

Microsoft不建议用户名和密码流,因为应用程序将直接请求用户输入其密码,这是不安全模式。 在大多数情况下,可以使用更安全的流。

下面的代码示例演示如何使用 OpenDSObject 方法对用户进行身份验证。

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