0
// User Custom Validate event
function User_CustomValidate(&$usr, &$pwd) {
// Enter your custom code to validate user, return TRUE if valid.     


// LDAP authentication example for User_CustomValidate server event
if (!function_exists("ldap_connect"))
    die("LDAP extension not installed.");
$ldapconn = ldap_connect("server.company.com", 389) or die("Could not connect to LDAP server."); // Note: Replace the host name and port
if ($ldapconn && ldap_bind($ldapconn, $usr, $pwd)) {
    $this->setCurrentUserName($usr); // Set the current user name    
    return TRUE;
}

return FALSE;

}

このコード ブロックを使用して LDAP 認証を容易にするアプリケーションがあります。ログイン ページで、ユーザーは company\user.name を入力する必要があります - このコードで "company\" の部分を usr 変数に連結するにはどうすればよいですか?

4

1 に答える 1

0

ユーザー名に「company\」の部分を含めるだけです。会社のドメインで検証の呼び出しを含めるか、関数にUser_CustomValidate('username', 'password', 'company');デフォルト値を設定して$domain、これを独自に処理することができます。function User_CustomValidate(&$usr, &$pwd, $domain = 'company') {

これでうまくいくはずです:

// User Custom Validate event
function User_CustomValidate(&$usr, &$pwd, $domain = '') {
    // Enter your custom code to validate user, return TRUE if valid.     

    //Add the slashes to domain if necessary
    $domain = (!empty($domain))?$domain.'\\':'';

    // LDAP authentication example for User_CustomValidate server event
    if (!function_exists("ldap_connect"))
        die("LDAP extension not installed.");
    $ldapconn = ldap_connect("server.company.com", 389) or die("Could not connect to LDAP server."); // Note: Replace the host name and port
    if ($ldapconn && ldap_bind($ldapconn, $domain.$usr, $pwd)) {
        $this->setCurrentUserName($usr); // Set the current user name    
        return TRUE;
    }

    return FALSE;
}
于 2013-06-07T18:50:32.583 に答える