【问题标题】:Server is unwilling to perform. LDAP in PHP服务器不愿意执行。 PHP 中的 LDAP
【发布时间】:2014-02-27 13:58:06
【问题描述】:

我总是收到这个错误

服务器不愿意执行

我的代码是下一个:

   echo "Checking ...";
    $username = $_POST["username"];
    $passwd = $_POST["passwd"];
    $host              = 'myhost.co.uk'; 
    $port              = 389; 
    $dn                = 'uid='.$username.',cn=nssproxy,ou=users,dc=co,dc=uk';

   // conexion a ldap

    $conn = ldap_connect( "ldap://".$host.":389") ;

    ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);

    // match de usuario y password
    $bind = ldap_bind( $conn, $dn, $password );


    if ($bind){
        echo "OK";
    }
    else {
        echo "NO OK";
    }
    echo ldap_error($conn);

为什么会出现这个错误?我总是和任何用户一起测试,这个脚本返回同样的错误。

提前致谢。

【问题讨论】:

    标签: php authentication ldap openldap


    【解决方案1】:

    于是我在 Google 上搜索了Server is unwilling to perform,第一个结果显示:

    C.1.4。 ldap_*: 服务器不愿意执行

    如果持有目标条目的后端不支持给定的操作,slapd 将返回一个不愿意执行的错误。

    密码后端只愿意执行搜索。它将返回一个不愿执行所有其他操作的错误。

    shell 后端是可配置的,并且可能支持有限的操作子集。检查指示目录服务器所需资源短缺的其他错误。即你可能有一个完整的磁盘等

    ldap_mod_replace() [function.ldap-mod-replace]: Modify: Server is unwilling to perform 也有一些要求

    【讨论】:

    • 我刚刚遇到了一个类似的问题,即通过 PHP 的 LDAP,昨天工作得很好,今天突然停止工作。我不断收到的错误是“您的浏览器没有启用 cookie”(来自 MediaWiki),即使它们确实在我的浏览器上启用了。我检查并意识到我的 /var 逻辑卷已 100% 满。我清理了一些空间,重新启动了 HTTPD,一切都很好。
    【解决方案2】:

    一种可能性是我做了什么...我错误地配置了/etc/ldap.conf,并在我打算放置rootbinddn的地方添加了binddn,这导致了这条消息。

    【讨论】:

      【解决方案3】:

      我遇到了这个错误。 10.0.0.14 IP 上 Windows Server 2019 上虚拟机上的 Ldap。

      我设法连接绑定成功,但是在 ldap_add() 时出现此错误。

      我的解决方案是检查我要保存的 $record 数组参数。

      我这组属性对我有用:

      $r = ldap_add($this->LdapConn, 'CN=user 3,'.$this->Branch, array(
              'cn'            => 'user 3',
              'name'          =>  'test',
              'sn'            => 'asd',
              'instanceType'  => '4',
              'objectCategory'=> 'CN=Person,CN=Schema,CN=Configuration,DC=test-domain,DC=com',
              'mail'          => 'mai222222l@mail2.com',
              'objectclass'=>array(
                  'top',
                  'user',
                  'person',
                  'organizationalPerson'
              )
          ));
      

      请注意,ldap_add() 第二个参数是路径 (dn),这可能会导致问题。

      Path(dn) 必须是当前分支 + 条目

      对我来说,当前分支是 'CN=Users,DC=test-domain,DC=com' 并且完整路径意味着 dn = "CN=user 3,CN=Users,DC=test-domain,DC=com"

      请注意,第一部分 cn=user 3 必须与以下数组中的相同。

      【讨论】:

        【解决方案4】:

        我的识别名 (dc) 不正确。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-03-01
          • 2016-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多