Burris, Celeste Suliin wrote:
I'm running the standard test program, and appear to get a successful bind,
but any search says I don't have a successful bind.

I'm completely baffled.

You're not checking for an error response during the bind. You might want to do something like:


my $bind = $ldap->bind($binduser, password => "$bindpass");
if ($bind->code) {
  # spit out an error here
} else {
  # looks like we were successful.
}

Or at least something like that. As it is, you're just checking the return of the function. It performs the bind function, it just so happens it runs into an error.

----- the code
#!/usr/local/bin/perl

use Net::LDAP;
use Data::Dumper;

my $host       = "dctmb001.tacoma.lcl";
my $port       = 389;
my $binduser   = "CN=xxxxxx,DC=Tacoma,DC=lcl";
my $bindpass   = "xxxxxxx";
my $connstring = "$host" . ':' . "$port";
my $basedn     = "DC=TACOMA,DC=LCL";
my $login      = "csburris";
my $filter     = "(sAMAccountName=" . $login . ")";

my $ldap       = Net::LDAP->new($connstring);

if ( $ldap->bind( $binduser, password => "$bindpass" ) ) {
print "successful bind to $host:$port\n"; }
else { print "can't bind to ldap server $host:$port ($@)\n";
exit; }


print "filter: $filter\n";
print Dumper($ldap);

$mesg = $ldap->search( base   => "$basedn",
                       scope  => 'sub',
                       filter => "$filter"
                      );


if ( $mesg->code ) {
print Dumper($mesg->code);
print "FAILED: error is: " . $mesg->error . "\n";
exit; }
else { print "found " . $mesg->count . " entries\n";
foreach $entry ( $mesg->entries ) {
$entry->dump;
} }


if ($ldap) { $ldap->unbind; }

------ results
./Net-LDAP.pl
successful bind to dctmb001.tacoma.lcl:389
filter: (sAMAccountName=csburris)
$VAR1 = bless( {
                 'net_ldap_version' => 3,
                 'net_ldap_debug' => 0,
                 'net_ldap_socket' => bless( \*Symbol::GEN0,
'IO::Socket::INET' ),
                 'net_ldap_host' => 'dctmb001.tacoma.lcl:389',
                 'net_ldap_uri' => 'dctmb001.tacoma.lcl:389',
                 'net_ldap_resp' => {},
                 'net_ldap_mesg' => {},
                 'net_ldap_async' => 0,
                 'net_ldap_refcnt' => 1
               }, 'Net::LDAP' );
FAILED: error is: 00000000: LdapErr: DSID-0C090627, comment: In order to
perform this operation a successful bind must be completed on the
connection., data 0, vece




Reply via email to