我们创建的Intranet站点需要与用户的网络登录密码相同的密码,因此我们使用LDAP来检查用户名/密码。
没关系,但是如果他们错误地输入三次就会锁定他们的帐户,并且有一两个用户发现这一点令人困惑。
无论如何我都可以检查,使用LDAP / PHP,无论他们的帐户是否被锁定,所以我可以显示一条消息,提示他们联系IT?
由于
答案 0 :(得分:2)
您需要使用PHP中的LDAP功能连接到LDAP并执行搜索/读取以查找和获取信息。您可以在此处阅读:http://us3.php.net/manual/en/book.ldap.php
查找阅读条目的示例代码:
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,LDAP中的nsaccountlock并读取它们
答案 1 :(得分:0)
如果没有标准的“锁定”字段,我会使用LDAP浏览器比较锁定前后的帐户。您可以使用LBE(LDAP浏览器/编辑)提取用户对象的LDIF文件,然后使用您喜欢的差异工具来比较它们。
答案 2 :(得分:0)
这不会破坏共享登录的想法吗?
如果您的Intranet站点允许的尝试次数多于网络登录,则可以使用它来查找用户的密码。
答案 3 :(得分:0)
AD个人资料属性useraccountcontrol
之一。
这包含decimal
值,可在此处转换为可读;
锁定可以指多种情况,通常是
ACCOUNTDISABLE
2 / 0x0002(hexa)PASSWORD_EXPIRED
8388608 / 0x800000 LOCKOUT
16 / 0x0010