这是我的计划。我无法绑定。我不知道是什么问题。我认为连接字符串有问题。如何找到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;
}
答案 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);