我正在尝试连接到LDAP服务器以验证用户凭据。
我发现有一些用户遇到了同样的问题,但他们的解决方案对我不起作用。
下面是我使用的代码:
<?php
define('LDAP_SERVER', 'LDAP://pdc.mydomain.com');
define('LDAP_PORT', 389);
define('LDAP_TOP', 'dc=mydomain,dc=com');
if(isset($_POST['username']))
{
if(!($ds = ldap_connect(LDAP_SERVER, LDAP_PORT)))
{
die ("Could not connect to mydomain domain");
}
$un = $_POST['username'].",".LDAP_TOP;
//echo stripslashes($un)."<br>";
$ldapbind = ldap_bind($ds, stripslashes($un), $_POST['password']);
if($ldapbind)
echo "login success";
else
echo "login failed";
}
?>
我试过使用"mydomain\myusername“和"myusername”。
我添加了stripslashes()函数,当这两个函数都不能测试时,仍然没有骰子。
我每次得到的错误是:警告: ldap_bind():无法绑定到服务器:无效凭据
任何帮助都将不胜感激
提亚
发布于 2015-11-18 16:33:42
我知道这是一个相当古老的问题,如果你仍然需要一个答案,那么如果你在一个php文件中运行这段代码会发生什么?
$username = 'hello';
$password = '123123';
$server = '192.168.32.4';
$domain = '@yourdomain.local';
$port = 389;
$connection = ldap_connect($server, $port);
if (!$connection) {
exit('Connection failed');
}
// Help talking to AD
ldap_set_option($connection , LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($connection , LDAP_OPT_REFERRALS, 0);
$bind = @ldap_bind($connection, $username.$domain, $password);
if (!$bind) {
exit('Binding failed');
}
// This is where you can do your work
echo 'Hello from LDAP';
ldap_close($connection );
更多信息请访问here。
发布于 2015-11-18 16:21:14
请检查您的登录和通过是否正确。并在登录前添加域。参见示例底部(HQ\login):
<?php
$login = 'HQ\student';
$password = 'MYPASS';
$ldap_link = ldap_connect('pdc.bc) or die("Could not connect to LDAP server.");
$ldapbind = @ldap_bind($ldap_link, $login, $password) or die ("Error trying to bind: ".ldap_error($ldap_link));
?>
https://stackoverflow.com/questions/8900643
复制相似问题