PHP LDAP与服务器绑定AD';用户帐户

PHP LDAP与服务器绑定AD';用户帐户,php,iis,active-directory,ldap,Php,Iis,Active Directory,Ldap,我有一些使用PHP和LDAP连接到AD的代码: $host = 'ldap://stack.overflow.com'; $port = 389; $username = 'stackOverflow'; $password = 'IaMP4ssWord'; $dn = 'CN=Users, DC=STACK, DC=OVERFLOW, DC=COM'; $cond = '(&(objectcategory=user)(displayname=*))';//All users that

我有一些使用PHP和LDAP连接到AD的代码:

$host = 'ldap://stack.overflow.com';
$port = 389;
$username = 'stackOverflow';
$password = 'IaMP4ssWord';
$dn = 'CN=Users, DC=STACK, DC=OVERFLOW, DC=COM';
$cond = '(&(objectcategory=user)(displayname=*))';//All users that have a displayname

if($ldap = ldap_connect($host, $port))
{
    if(ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3))
    {
        if(ldap_bind($ldap, $username, $password))
        {
            $attrs = array('displayname', 'mail');
            if($rs = ldap_search($ldap, $dn, $cond, $attrs))
            {
                $results = ldap_get_entries($ldap, $rs);
                echo "<pre>";print_r($result);echo "</pre>";//Print the results
            }
        }
        else
        { echo 'Binding failed';}
    }
    else
    { echo 'Setting options failed';}
}
else
{ echo 'Connection failed'; }
$host='ldap://stack.overflow.com';
$port=389;
$username='stackOverflow';
$password='IaMP4ssWord';
$dn='CN=Users,DC=STACK,DC=OVERFLOW,DC=COM';
$cond='(&(objectcategory=user)(displayname=*))//具有displayname的所有用户
if($ldap=ldap_connect($host,$port))
{
如果(ldap_设置_选项($ldap,ldap_选项_协议_版本,3))
{
if(ldap_绑定($ldap,$username,$password))
{
$attrs=array('displayname','mail');
if($rs=ldap\u搜索($ldap,$dn,$cond,$attrs))
{
$results=ldap\u get\u条目($ldap,$rs);
echo”“;print_r($result);echo”“;//打印结果
...
if(ldap_bind($ldap))
...
} } 其他的 {echo'绑定失败';}
...
if(ldap_bind($ldap))
...
} 其他的 {echo'设置选项失败';}
...
if(ldap_bind($ldap))
...
} 其他的 {echo'连接失败';}
...
if(ldap_bind($ldap))
...
现在这段代码工作得很好。它打印出每个在广告中有显示名的用户。 问题是用户名/密码绑定我正在使用自己的用户凭据绑定到服务器

我想知道是否有一种方法可以使用服务器凭据进行绑定

我是在WindowsServer2008R2上使用PHP5.3+IIS安装的,用于安装IIS的服务器和具有AD的服务器(两个不同的VM)

我还知道IIS有一个名为IISStackOverflow的广告帐户,但我不知道密码,即使它有密码

谢谢

哦!!我尝试将
$username
更改为
IISStackOverflow
并将
$password
更改为
'

但它给出了无效的凭证错误

--编辑--


我必须做装订部分吗?(如果我只是在读取数据)

当您从服务器本身运行数据时,如果您只想读取数据,我会尝试使用:

根据,如果未指定绑定rdn和绑定密码,则尝试匿名绑定

然后,如果您的匿名登录被拒绝(不应该拒绝,因为您的代码至少以域用户的身份在服务器上的IIS下运行),您将在那里找到。这用于在W2K8上运行forme,在W2K12上进行任何测试