为什么我不能用Perl代码绑定我的LDAP服务器?

use*_*299 1 perl ldap

我发现我的ldap服务器有些问题,我只是无法用我的perl脚本绑定它,这里是脚本:

use strict;
use Net::LDAP;

my $ldap = "";
$ldap = Net::LDAP->new("iis.aulia.net");
my $mesg = "";
$mesg = $ldap->bind("CN=app-audev-adpead,OU=Applications,OU=Special,OU=Users
,OU=FRA,DC=iis,DC=aulia,DC=net", password => "=3\6dsdKDsH30z&B/'Bub00");

die $mesg->error() if $mesg->code();
$mesg = $ldap->unbind;
Run Code Online (Sandbox Code Playgroud)

它总是告诉我:

80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext错误,数据52e,v1db1在search.pl第16行,第522行

之后我把错误的组合$mesg = $ldap->bind?这"CN=app-audev-adpead"是我的ldap服务器用户登录,并以与其相同的格式编写.

TLP*_*TLP 8

有你的错误

80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext错误,数据52e,v1db1在search.pl第16行,第522行

根据该页面的"数据52e" 是"无效凭证".

可能与你使用\6双引号字符串,它将试图逃脱六,而不是,如我所想,代表反斜杠和六.所以改成它:

password => q(=3\6dsdKDsH30z&B/'Bub00)
Run Code Online (Sandbox Code Playgroud)

单引号q()将避免插值,并且您可以更改其分隔符以匹配您引用的任何字符串,例如q!foo(bar)!.

你的绑定字符串中也有一个换行符,可能有也可能不重要.

作为旁注:您真的要在这里发布您的登录信息吗?