Hi,

I created an iOS app using xcode version 6.0.1. This app should accept the windows login information from the user.

I'm using OpenLDap to do the authentication.

 This is the code I'm using, works fine with Ldap and port 389

How do I make it work with Ldaps and port 636?

# define LDAP_SERVER = “ldap://host:389”

- (BOOL)checkValidUser:(NSString *)username password:(NSString *)password

{

   

    LDAP        *ld;

    int         rc;

    int desired_version = LDAP_VERSION3;

    struct berval cred;

 

    size_t len = strlen([username UTF8String]) + 1;

    char usr [len];

    memcpy(usr, [usernameUTF8String], len);

 

    size_t len2 = strlen([password UTF8String]) + 1;

    char passwd [len2];

    memcpy(passwd, [password UTF8String], len2);

   

    cred.bv_val =  (char *) passwd;

    cred.bv_len = strlen( passwd );

  

    if( ldap_initialize( &ld, LDAP_SERVER ) )

    {

        return NO;

    }

   

    rc = ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &desired_version);

    if ( rc != LDAP_SUCCESS ) {

        perror( "ldap_set_option failed" );

        exit(EXIT_FAILURE);

    }

    else

    {

        printf("Set LDAPv3 client version.\n");

    }

   

    // Simple Authentication

     rc = ldap_sasl_bind_s( ld, usr, LDAP_SASL_SIMPLE, &cred, NULL, NULL, NULL );

     if( rc != LDAP_SUCCESS )

     {

     fprintf(stderr, "ldap_sasl_bind_s: %s\n", ldap_err2string(rc) );

     return NO;

     }

     else

     {

     return YES;

     }

 

}

 

 

Thanks,

Marian