在 AD 服务器上使用 winldap.h 进行 LDAP 搜索

LDAP Search with winldap.h on AD Server(在 AD 服务器上使用 winldap.h 进行 LDAP 搜索)

本文介绍了在 AD 服务器上使用 winldap.h 进行 LDAP 搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试进行 LDAP 搜索,但它在我的 Active Directory 测试服务器上不起作用.我使用此代码:

I am trying to do a LDAP search and it is not working on my Active Directory Test Server. I use this code:

#include <winldap.h>
...
LDAP* ld = ldap_init("AD-servername", 389);
int myVersion =LDAP_VERSION3;
ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &myVersion);
ldap_connect(ld, NULL);
//ldap_simple_bind_s(ld, NULL, NULL); I tried using this line too. but got the same error
LDAPMessage *pMsg = NULL;
int retVal = ldap_search_s(ld, "dc=myDomain,dc=extension", LDAP_SCOPE_SUBTREE, "(samAccountName=testaccount)", NULL, NULL, &pMsg);
//retVal = 1 which is LDAP_OPERATIONS_ERROR

我做错了什么?

推荐答案

除非另有配置,您必须绑定使用 Microsoft Active Directory 服务器的有效帐户名和密码,否则将返回操作除了极少数.

Unless otherwise configured, you must bind using a valid account name and password for Microsoft Active Directory servers, otherwise it will return the operations error for all queries except a very small handful.

即那个:

ldap_simple_bind_s(ld, NULL, NULL);

需要替换为:

char *username = "cn=aUser,ou=Users,dc=myDomain,dc=extension";
char *password = "this is the password";
ldap_simple_bind_s(ld, username, password);

这篇关于在 AD 服务器上使用 winldap.h 进行 LDAP 搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在 AD 服务器上使用 winldap.h 进行 LDAP 搜索

基础教程推荐