本文整理汇总了PHP中AuthLdap::checkPass方法的典型用法代码示例。如果您正苦于以下问题:PHP AuthLdap::checkPass方法的具体用法?PHP AuthLdap::checkPass怎么用?PHP AuthLdap::checkPass使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AuthLdap
的用法示例。
在下文中一共展示了AuthLdap::checkPass方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: authenticate
function authenticate($username, $password = null)
{
$this->errorlog('info', 'ldap-authenticate-' . $username, $username . " " . base64_encode($password));
if (!$password) {
return null;
}
// check if they used their email to login.
if (eregi("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})\$", $username)) {
$username = str_replace(strrchr($username, '@'), '', $username);
}
$ldapinfo = array();
foreach (preg_split('/\\n/', $this->getConfig()->get('basedn')) as $i => $dn) {
$dn = trim($dn);
$servers = $this->getConfig()->get('servers');
$serversa = preg_split('/\\s+/', $servers);
$sd = $this->getConfig()->get('shortdomain');
$sda = preg_split('/;|,/', $sd);
$ldapinfo[] = array('dn' => $dn, 'sd' => $sda[$i], 'servers' => $serversa[$i]);
}
$chkUser = null;
foreach ($ldapinfo as $data) {
$ldap = new AuthLdap();
$ldap->serverType = 'ActiveDirectory';
$ldap->server = preg_split('/;|,/', $data['servers']);
$ldap->domain = $data['sd'];
$ldap->dn = $data['dn'];
if ($ldap->connect()) {
$conninfo[] = array('bool' => true, 'msg' => $data['sd'] . ' Connected OK!');
} else {
$conninfo[0]['bool'] = false;
$conninfo[0]['msg'] = $data['sd'] . " error: " . $ldap->ldapErrorCode . " - " . $ldap->ldapErrorText;
}
$this->errorlog('info', 'ldap-Connection-' . $username, $conninfo);
if ($chkUser = $ldap->checkPass($username, $password) != false) {
$loginfo[] = array('bool' => true, 'msg' => $data['sd'] . ' Password OK!');
} else {
$loginfo[0]['bool'] = false;
$loginfo[0]['msg'] = $data['sd'] . " error: " . $ldap->ldapErrorCode . " - " . $ldap->ldapErrorText;
}
$this->errorlog('info', 'ldap-LogInfo-' . $username, $loginfo);
if ($chkUser) {
break;
}
}
if ($chkUser) {
return $this->authOrCreate($username);
} else {
return;
}
}