【问题标题】:Why can't I bind my LDAP server in Perl code?为什么我不能在 Perl 代码中绑定我的 LDAP 服务器?
【发布时间】:2013-03-08 02:11:21
【问题描述】:

我发现我的 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 服务器用户登录名,其格式与此相同。

【问题讨论】:

    标签: perl ldap


    【解决方案1】:

    你的错误

    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)!。

    您的绑定字符串中还有一个换行符,这可能很重要,也可能不重要。

    附带说明:您真的应该在这里发布您的登录信息吗?

    【讨论】:

    • 感谢您的帮助伙伴!它现在工作:)。不用担心,我改变了我的一些代码行
    • @user2186299 不客气。如果这回答了您的问题,您可以通过单击旁边的复选标记将其标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    相关资源
    最近更新 更多