当前位置: 首页 > 知识库问答 >
问题:

ldap_add():添加:服务器不愿意执行

赖诚
2023-03-14

我刚开始使用LDAP和Windows Server 2012。我已经设法让我的PHP代码使用管理员帐户绑定到Active Directory,但我似乎可以使用ldap_add函数创建一个新用户。

我正在运行Windows Server 2012 R2和IIS 8。我已经安装了带有企业根证书的证书颁发机构,并且能够使用ldp.exe与SSL连接连接到AD。

我已经浏览了谷歌以及“可能重复的线程”,但在过去的几个小时里,没有一个给我提供了一个有效的答案。

当我使用以下PHP代码时:

<?php

$ldaprdn  = 'netclass\Administrator'; 
$ldappass = 'password here'; 

    $ldapconn = ldap_connect('ldap://server.netclass.co.uk')
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // verify binding
    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }


        // prepare data
    $info["givenname"] = "Ronnie Brown";
    $info["samaccountname"] = "br01";
    $info["objectclass"] = "person";

    // add data to directory
    $r = ldap_add($ldapconn, "cn=Ronnie,dc=netclass,dc=co,dc=uk", $info); //Line 28

}
?>

我得到输出:

LDAP bind successful...
Warning: ldap_add(): Add: Server is unwilling to perform in C:\inetpub\wwwroot\adduser.php on line 28

我尝试通过更改以下内容来启用SSL:

$ldapconn = ldap_connect('ldap://server.netclass.co.uk')

$ldapconn = ldap_connect('ldaps://server.netclass.co.uk')

但我得到了以下错误:

Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in C:\inetpub\wwwroot\adduser.php on line 12
LDAP bind failed...
Warning: ldap_add(): Add: Can't contact LDAP server in C:\inetpub\wwwroot\adduser.php on line 28

共有1个答案

祁杰
2023-03-14

我今天设法找到了答案。

我在/etc/ldap/ldap中添加了以下行。形态

TLS_REQCERT never

在此之后,我能够连接,但仍然收到错误消息:

Server Unwilling to Perform

这是因为我试图设置密码纯文本:

$ldaprecord["unicodepwd"] = 'MyPassword1234'

你需要先对它进行编码,所以一旦我把代码改成这个,它就可以工作了:

## Create Unicode password
## Assumes that given password is in UTF-8 encoding!
## Adjust it to the actual encoding of the password
$pwdtxt = "MyPassword1234";
$newPassword = '"' . $pwdtxt . '"';

$newPass = iconv( 'UTF-8', 'UTF-16LE', $newPassword );

$ldaprecord["unicodepwd"] = $newPassw;

希望这对别人有帮助!

 类似资料:
  • 我已经在Wildfly14上安装了Business Central和Kie Execution Server 7.1。 Business Central位于:http://localhost:8080/kie-wb Kie执行服务器位于:http://localhost:8080/kie-server 我正在尝试如何将在Business Central中设计的一个项目部署到Kie执行服务器。我已经

  • 我有一个数据库结果,每一个调用创建500条记录500条,然后下一个500条,然后下一个 我需要运行一个记录每个不同线程执行特定任务的程序 我举的例子如下 ExecutorService executor=Executors.newFixedThreadPool(10); 我的问题是,在完成当前executer服务之前,it需要获得接下来的500个用户并尝试开始处理,我需要停止该操作,直到处理了前5

  • postgres不知道在哪里可以找到服务器配置文件。 必须指定--config-file或-d调用选项或设置PGDATA环境变量。 因此,我尝试设置配置文件: 我得到以下错误: 我搜索了这个错误消息,但找不到解决方案。 有人能对此提供一些见解吗?

  • 问题内容: 我正在尝试创建一个代码块,该代码块将创建一个链接服务器/删除一个链接服务器。我曾发布过有关添加和删除函数的类似问题,解决方案是删除函数并重新创建它。 因此,我想对LinkServer采用相同的方法。每次运行此代码时,请删除它并重新创建它。 但是,删除后无法重新创建链接服务器,并且收到错误消息:服务器已存在。 这是我的代码: 问题答案: 实际上,这至少是SQL Server的副本:链接服

  • 我尝试在server.xml中添加一个新的docbase,以便在我的tomcat服务器中定义一个上传目录。然而,如果我将它添加到我的独立tomcat服务器上,它会像魔咒一样工作: 但是在我的本地eclipse tomcat服务器配置中它不起作用。我的发布操作是“更新上下文路径”,我在服务器选项卡中使用“工作区元数据”。 知道我哪里做错了吗?

  • “Drools骆驼服务器”和“KIE-WB执行服务器”有什么区别?它们是否服务于在远程服务器中执行规则/进程的相同目的?