如何查找LDAP连接字符串?

时间:2013-11-09 06:27:53

标签: active-directory ldap windows-server-2008 connection-string bind

这是我的计划。我无法绑定。我不知道是什么问题。我认为连接字符串有问题。如何找到LDAP连接字符串?

    #include <iostream>
    #include <conio.h>
    #include <wchar.h>
    #include <objbase.h>
    #include <activeds.h>
    #include <AdsHlp.h>

    using namespace std;
    const IID IID_IADs = {0xFD8256D0, 0xFD15, 0x11CE, {0xAB,0xC4,0x02,0x60,0x8C,0x9E,0x75,0x53}};
    int main(int argc, CHAR* argv[])
    {
    IADs *pObject;
    HRESULT hr;
    ::CoInitialize(NULL);
            hr = ADsOpenObject(L"ldap://server1",L"cn=Manager,dc=maxcrc,dc=com",L"secret",
                ADS_SECURE_AUTHENTICATION, 
                IID_IADs,
                (void**)&pObject);

    if(SUCCEEDED(hr))
    {
    cout<<"Success";
    pObject->Release();
    }
    else
    cout<<"Unsuccessful";

    CoUninitialize();
    getch();
    return 0;
    }

2 个答案:

答案 0 :(得分:0)

我从不使用'C'中的ADSI COM对象,但是当我在PowerShell中使用它时,如果我没有在连接URL中使用大写字母表示“LDAP”,则遇到错误(PowerShell不区分大小写)。请查看LDAP ADsPath以大写字母“LDAP”开头的所有网址。

答案 1 :(得分:0)

我不确定C中的连接字符串是否与C ++类似,但对于C ++,我们必须在连接字符串中设置用户名和密码,如下所示:

hr = ADsOpenObject(L"LDAP://CN=Manager,DC=maxcrc,DC=com",
                   "username",
                   "password",
                   ADS_SECURE_AUTHENTICATION, 
                   IID_IADs,
                   (void**) &pObject);