C++ ADSI(ADsOpenObject)始终绑定到特定域和特定用户

C++ ADSI(ADsOpenObject)始终绑定到特定域和特定用户,c++,visual-c++,ldap,adsi,C++,Visual C++,Ldap,Adsi,目前我正在处理现有的vc++dll,它使用ADsOpenObject方法绑定域详细信息。每当我执行代码时,它总是指向一个特定的域,比如'picTest.com',对于一个特定的用户,无论是用户还是它总是绑定到同一个域和用户的域。下面是代码片段: hr = ADsOpenObject(szBindPath, NULL, NULL, ADS_SECU

目前我正在处理现有的vc++dll,它使用
ADsOpenObject
方法绑定域详细信息。每当我执行代码时,它总是指向一个特定的域,比如'picTest.com',对于一个特定的用户,无论是用户还是它总是绑定到同一个域和用户的域。下面是代码片段:

hr = ADsOpenObject(szBindPath,
                          NULL,
                         NULL,
                         ADS_SECURE_AUTHENTICATION, // Use Secure Authentication
                         IID_IADs,                   (void**)&pObject);

上面的代码非常简单,我相信域和用户是在某处配置的。我已经查找了注册表和环境变量的任何条目,没有找到任何线索。

如MSDN文章中所述,关于:

C/C++客户端调用ADsOpenObject助手函数绑定到 ADSI对象,使用作为凭据提供的用户名和密码 获取相应的目录服务。如果lpszUsername和 lpszPassword为空,并且设置了ADS_安全认证,ADSI绑定 到使用调用线程的安全上下文的对象 是用户帐户的安全上下文,在该用户帐户下 应用程序正在运行,或调用 线程模拟

换句话说。因为u为用户和密码指定了
NULL
,所以执行软件的当前用户用于绑定。因为您没有在ldap路径中指定特定的域控制器(如
ldap://DC01.example.local/CN=something,DC=example,DC=local
)它绑定到自己选择的DC