Yaerox has asked for the wisdom of the Perl Monks concerning the following question:

Hey guys,
got a problem by using the Net::LDAP function search.

use Net::LDAP; $ldap = Net::LDAP->new( 'MY_IP.DOMAIN1.DOMAIN2.de' ) or die "$@"; $mesg = $ldap->bind ( 'dc=DOMAIN1,dc=DOMAIN1,dc=de', password => 'my_p +ass' ); $mesg = $ldap->search( # perform a search base => 'ou=Test,ou=Benutzer,ou=DOMAIN1/DOMAIN1', filter => '(sAMAccountName=*)', scope => 'subtree' ); $mesg->code && die $mesg->error; foreach $entry ($mesg->entries) { $entry->dump; } $mesg = $ldap->unbind; # take down session


Getting this Error:
000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1 at ldap.pl line 13, <DATA> line 751.

I guess I have to simplifie the dn and I have to use username@DOMAIN1.DOMAIN2.de as login, but I have no idea how I can connect by using username and password on this package. Can someone please help me out by telling me

- how to connect with username AND password
- (if the first point won't solve it) how to fix this Err?

#Edit: When removing the search line from the script, everythign looks fine. So I guess the mistake is in the search or like I said above on the connect, because I need to connect with an explicit user.

Thanks in advice.

Replies are listed 'Best First'.
Re: Net::LDAP - search result is: 000004DC: LdapErr: DSID-0C0906E8
by Yaerox (Scribe) on Jul 15, 2014 at 09:40 UTC
    Got this running:

    #!/usr/bin/env perl use strict; use warnings; use Net::LDAP; my $server = "MY_IP.DOMAIN1.DOMAIN2.de"; my $ldap = Net::LDAP->new( $server ) or die $@; $ldap->bind('myusername@DOMAIN1.DOMAIN2.de', password => 'mypassword') +; my $result = $ldap->search( base => "ou=Test,ou=Benutzer,ou=DOMAIN1/DOMAIN2,dc=DOMAIN1,dc=DO +MAIN2,dc=de", filter => "(objectClass=*)" ); die $result->error if $result->code; printf "COUNT: %s\n", $result->count; foreach my $entry ($result->entries) { $entry->dump; } print "===============================================\n"; foreach my $entry ($result->entries) { printf "%s <%s>\n",$entry->get_value("displayName"),($entry->get_v +alue("sAMAccountName") || ''); } $ldap->unbind;