के माध्यम से एलडीएपी सर्वर पर नमूना कार्यक्रम को बाध्य करने में असमर्थ मेरे पास एक नमूना प्रोग्राम है जो सुरक्षित पोर्ट (एलडीएपी: //) पर एलडीएपी सर्वर से कनेक्ट करने का प्रयास कर रहा है हालांकि, नमूना कार्यक्रम नहीं है सर्वर से बांधने में सक्षम।एसएसएल (ldaps: //)
#define LDAP_DEPRECATED 1
#include <stdio.h>
#include <ldap.h>
#define BIND_DN "dc=example,dc=com"
#define BIND_PW "secret"
int main() {
LDAP *ld;
int rc;
int reqcert = LDAP_OPT_X_TLS_NEVER;
int version = LDAP_VERSION3;
int ret(0);
if (ldap_initialize (&ld, "ldaps://192.168.1.51:10636")) {
perror("ldap_init"); /* no error here */
return(1);
}
ldap_set_option (ld, LDAP_OPT_PROTOCOL_VERSION, &version);
ldap_set_option (ld, LDAP_OPT_X_TLS_REQUIRE_CERT, &reqcert);
rc = ldap_bind_s(ld, BIND_DN, BIND_PW, LDAP_AUTH_SIMPLE);
if(rc != LDAP_SUCCESS)
{
fprintf(stderr, "ldap_simple_bind_s: %s\n", ldap_err2string(rc));
return(1);
}
printf("Initial Authentication successful\n");
ldap_unbind(ld);
}
हालांकि, START_TLS के साथ नमूना कार्यक्रम को सफलतापूर्वक LDAP सर्वर पोर्ट 10389. ldapsearch ग्राहक पर चल रहा है के लिए बांधता है सर्वर से कनेक्ट ans उपयोगकर्ता आधार पेड़ खोज करने के लिए सक्षम है। लेकिन उपरोक्त नमूना कार्यक्रम नहीं है।
यह START_TLS के साथ काम करने के लिए:
ldap_set_option (ld, LDAP_OPT_X_TLS_REQUIRE_CERT, &reqcert);
rc = ldap_start_tls_s(ld, NULL, NULL);
if (rc != LDAP_SUCCESS) {
printf("ldap_start_tls() %s",ldap_err2string(ret));
}
किसी का कहना है सकते हैं कि मैं यहाँ ldaps के माध्यम से LDAP सर्वर के लिए बाध्य के लिए याद आ रही है: // ?? यहाँ मैं क्या जोड़ लिया है है
मैं सी ++ से बहुत परिचित नहीं हूं, लेकिन मैंने सीडी में एलडीएपीएस से निपटने से पहले यह वही त्रुटि देखी है। जिस तरह से हमने इसे तय किया था, वह 'सत्यापन प्रमाणक प्रमाणपत्र' सत्र विकल्प पर हमेशा 'प्रतिनिधि {वापसी सत्य}' वापस कर रहा था: 'ldapConnection.SessionOptions.VerifyServerCertificate + = प्रतिनिधि {वापसी सत्य; }; 'क्या आप सी ++ में कुछ ऐसा कर सकते हैं? – X3074861X