2009-07-06 74 views
3

我们创建了一个需要与用户的网络登录名称相同的密码的Intranet站点,因此我们使用LDAP来检查用户名/密码。无论如何检查用户帐户是否通过PHP/LDAP锁定?

这很好,但如果他们错误地输入了三次,它会锁定他们的帐户,并且有一两个用户发现这令人困惑。

无论如何我可以检查,使用LDAP/PHP是否他们的账户被锁定,所以我可以显示一条提示他们联系IT的消息?

感谢

+0

如果他们的账户被锁定,他们如何登录? – Shoban 2009-07-06 14:19:24

+1

你正在运行什么LDAP?我不认为“锁定”是用户对象的标准属性。 – 2009-07-06 14:27:41

回答

2

您需要使用PHP中的LDAP函数连接到LDAP并执行搜索/读取以查找和获取信息。在LDAP

if (!($ldap=ldap_connect($ldapip, $ldapport))) 
    { 
     die("Error:Unable to connect to the LDAP Server"); 
     return; 
    } 
    if (!ldap_bind($ldap, $admindn, $adminpwd)) 
    { 
     die("Error:Unable to bind to '$dn'!"); 
     return; 
    } 

    $sr=ldap_search($ldap, $userbasedn, $filter); 
    $info = ldap_get_entries($ldap, $sr); 

    if($info["count"] > 0) 
    { 
     $entry = ldap_first_entry($ldap, $sr); 
     $return_array = ldap_get_attributes($ldap, $entry); 
     if($return_array) 
     { 
      for ($i=0;$i<$return_array['count'];$i++) 
      { 
         print($return_array[$i]); 
         print($return_array[$return_array[$i]][0]); 
        } 
     } 
    } 

你可能想在AD lockoutTime检查该字段,nsaccountlock和阅读

0

没有一个标准的“封锁”现场我会使用LDAP浏览器之前,并锁定后的帐户进行比较。您可以使用LBE(LDAP浏览器/编辑)来提取用户对象的LDIF文件,然后使用您最喜爱的差异工具来比较它们。

+0

LBE什么时候进入'付费'模式?我想知道它去了哪里,因为我所有的链接都已经死了。 Geez。我最喜欢的LDAP浏览器仍然... – geoffc 2009-07-06 20:10:10

0

隐而不宣:你可以在这里读到它:http://us3.php.net/manual/en/book.ldap.php

查找示例代码读取条目这是否打破了共享登录的想法?

如果您的Intranet网站允许比网络登录更多的试用,则可以使用它来查找用户的密码。

相关问题