我为一家大公司维护一个 Intranet 网站。由于当前用户身份验证系统出现故障,我不得不制定紧急解决方案。这是简化的代码
$usr=$_POST['user'];
$psw=$_POST['code'];
if(!strlen($psw) )
$psw="x";
// because empty password works fine for any user
$ldap= ldap_connect("LDAP://ldapserver.xxx.local");
if(!$ldap)
exit(0);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_OPT_REFERRALS, 0);
if($bind = @ldap_bind($ldap, $usr, $psw){
header("Location: http:10.xx.xx.xx/entrance.php?id=$usr");
// login OK, look for user privileges
}else{
header("Location: http:10.xx.xx.xx/login.php?INV=1");
// back to login page
}
代码工作得很好,但我不希望用户必须输入他们的网络用户名和密码,当用户访问此页面时,匿名连接并绑定到 LDAP 服务器,页面是否可以获取有关此用户用户名的信息。
如果它可以提供一些额外的信息,例如全名,分支代码,分支,邮件地址..等,那将是一个很大的奖励