【问题标题】:ADSI(ADsOpenObject ) always binds to a particular domain and to a specific userADSI(ADsOpenObject ) 始终绑定到特定域和特定用户
【发布时间】:2014-10-23 06:49:19
【问题描述】:

目前我正在研究现有的 vc++ dll,它使用ADsOpenObject 方法绑定域详细信息。每当我执行代码时,它总是指向一个特定的域,如“picTest.com”,对于特定的用户,无论用户是谁或它总是绑定到同一个域和用户的域。下面是代码sn-p:

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

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

【问题讨论】:

    标签: c++ visual-c++ ldap adsi


    【解决方案1】:

    如 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      相关资源
      最近更新 更多