我们创建了一个需要与用户的网络登录名称相同的密码的Intranet站点,因此我们使用LDAP来检查用户名/密码。无论如何检查用户帐户是否通过PHP/LDAP锁定?
这很好,但如果他们错误地输入了三次,它会锁定他们的帐户,并且有一两个用户发现这令人困惑。
无论如何我可以检查,使用LDAP/PHP是否他们的账户被锁定,所以我可以显示一条提示他们联系IT的消息?
感谢
我们创建了一个需要与用户的网络登录名称相同的密码的Intranet站点,因此我们使用LDAP来检查用户名/密码。无论如何检查用户帐户是否通过PHP/LDAP锁定?
这很好,但如果他们错误地输入了三次,它会锁定他们的帐户,并且有一两个用户发现这令人困惑。
无论如何我可以检查,使用LDAP/PHP是否他们的账户被锁定,所以我可以显示一条提示他们联系IT的消息?
感谢
您需要使用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和阅读
隐而不宣:你可以在这里读到它:http://us3.php.net/manual/en/book.ldap.php
查找示例代码读取条目这是否打破了共享登录的想法?
如果您的Intranet网站允许比网络登录更多的试用,则可以使用它来查找用户的密码。
AD配置文件属性useraccountcontrol
之一。 这包含decimal
值可以转换成可读的这里;
锁定可以参照多个的情况下,通常
ACCOUNTDISABLE
2/0×0002(六)PASSWORD_EXPIRED
8388608 /从0x800000LOCKOUT
16/0x0010
如果他们的账户被锁定,他们如何登录? – Shoban 2009-07-06 14:19:24
你正在运行什么LDAP?我不认为“锁定”是用户对象的标准属性。 – 2009-07-06 14:27:41