0

以下は、LDAPSサーバーに接続するために使用しているコードです

/* Open LDAP Connection */
if( ldap_initialize( &ld, ldapServer ) )//Success Response
{
    perror( "ldap_initialize" );
    //return( OTHER );
}

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"server"
                                                     ofType:@"pem"];
int version =  LDAP_VERSION3;
ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &version);    
ldap_set_option(ld, LDAP_OPT_X_TLS_CACERTFILE, NULL);
ldap_set_option(ld, LDAP_OPT_X_TLS_CERTFILE,(__bridge const void *)(filePath));
ldap_set_option(ld, LDAP_OPT_X_TLS_KEYFILE, (__bridge const void *)(filePath));
rc = ldap_start_tls_s(ld, NULL, NULL);  //Failure Response (LDAP_INAPPROPRIATE_MATCHING)
if( rc != LDAP_SUCCESS ){
    printf("start tls failed.\n");
    exit(0);
}

ここで ldap_start_tls_s は失敗応答を返しています(LDAP_INAPPROPRIATE_MATCHING)

誰でも私が間違いを犯した場所で私を助けることができます。

役に立つリンクを見つけたら、私と共有してください。

4

1 に答える 1

1

NSStringからへのキャストはconst void *正しくありません:

ldap_set_option(ld, LDAP_OPT_X_TLS_CERTFILE,(__bridge const void *)(filePath));
ldap_set_option(ld, LDAP_OPT_X_TLS_KEYFILE, (__bridge const void *)(filePath));

あなたはおそらく欲しい:

ldap_set_option(ld, LDAP_OPT_X_TLS_CERTFILE, [filePath UTF8String]);
ldap_set_option(ld, LDAP_OPT_X_TLS_KEYFILE,  [filePath UTF8String]);
于 2015-03-20T15:58:47.377 に答える