目前我正在使用现有的vc ++ dll,它使用ADsOpenObject
方法绑定域详细信息。每当我执行代码时,它总是指向特定的域,如'picTest.com',对于特定的用户,无论是用户还是域,它总是绑定到同一个域和用户。以下是代码段:
hr = ADsOpenObject(szBindPath,
NULL,
NULL,
ADS_SECURE_AUTHENTICATION, // Use Secure Authentication
IID_IADs, (void**)&pObject);
以上代码非常简单,我相信域和用户在某处配置。我找了注册表和环境变量的任何条目,没有发现任何线索。
答案 0 :(得分:0)
如MSDN文章中关于ADsOpenObject:
所述C / C ++客户端调用ADsOpenObject帮助函数绑定到 ADSI对象,使用作为凭据提供的用户名和密码 为适当的目录服务。如果lpszUsername和 lpszPassword为NULL且ADS_SECURE_AUTHENTICATION设置,ADSI绑定 使用调用线程的安全上下文来访问对象 是用户帐户的安全上下文 应用程序正在运行或调用的客户端用户帐户 线程冒充。
换句话说。因为您为用户和密码指定了NULL
,所以执行该软件的当前用户将用于绑定。并且因为您没有在ldap路径中指定特定的域控制器(如ldap://DC01.example.local/CN=something,DC=example,dc=local
),它会绑定到自己选择的DC。