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

时间:2013-03-19 11:57:41

标签: 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;

它总是告诉我:

  

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

我在$mesg = $ldap->bind之后放错了组合吗? "CN=app-audev-adpead"是我的ldap服务器用户登录,其格式与此相同。

1 个答案:

答案 0 :(得分:8)

出现错误

  

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

根据this page的“数据52e”是“无效凭证”。

可能与你在一个双引号字符串中使用\6,这将试图逃脱六个,而不是像我想象的那样代表一个反斜杠和六个。所以改成它:

password => q(=3\6dsdKDsH30z&B/'Bub00)

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

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

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