Cách tốt nhất để chạy tìm kiếm trên người dùng hiện tại là truy xuất tất cả các thuộc tính, bao gồm các nhóm được liên kết trong Active Directory bằng LDAP/PHP là gì?PHP LDAP Nhận thuộc tính người dùng, bao gồm các nhóm liên kết
Đối với thuộc tính, chủ yếu chỉ là tên, họ và tên hiển thị.
Đối với các nhóm được liên kết, chỉ các nhóm mà người dùng là thành viên của, chẳng hạn như hàm memberOf.
Tôi đã thử một vài tùy chọn, nhưng dường như không thể kết hợp bộ lọc/tìm kiếm phù hợp và hầu hết các ví dụ bao gồm việc truy xuất danh sách người dùng có nhóm đã biết.
Tôi đã cố gắng chạy này sau một ràng buộc thành công:
$attributes = array("displayname");
$filter = "(&(sAMAccountName=$username))";
$result = ldap_search($ds, $ldapconfig['basedn'], $filter, $attributes);
$entries = ldap_get_entries($ds, $result);
if($entries["count"] > 0){
echo "displayName: ".$entries[0]['displayname'][0]."<br/>";
} else {
echo("msg:'".ldap_error($ds)."'</br>");
}
nào trả về lỗi sau: "Không có đối tượng như vậy".
UPDATE:
Đây là khối mới nhất Tôi đã thử và tôi có thể nhận được kết quả khi tôi print_r biến $ thông tin, tuy nhiên đối với khoản vẫn erring ra ở đâu đó. Tôi đã thay đổi BaseDN để chỉ dc thuộc tính:
$filter="($SearchField=$SearchFor)";
$sr=ldap_search($ds, $basedn, $filter, $LDAPFieldsToFind);
$info = ldap_get_entries($ds, $sr);
if($info["count"] > 0) {
for ($x=0; $x<$info["count"]; $x++) {
$sam=$info[$x]['samaccountname'][0];
$giv=$info[$x]['givenname'][0];
$tel=$info[$x]['telephonenumber'][0];
$email=$info[$x]['mail'][0];
$nam=$info[$x]['cn'][0];
$dir=$info[$x]['homedirectory'][0];
$dir=strtolower($dir);
$pos=strpos($dir,"home");
$pos=$pos+5;
if (stristr($sam, $SearchFor) && (strlen($dir) > 8)) {
print "\nActive Directory says that:\n";
print "CN is: ".$nam." \n";
print "SAMAccountName is: ".$sam." \n";
print "Given Name is: ".$giv." \n";
print "Telephone is: ".$tel." \n";
print "Home Directory is: ".$dir." \n";
}
}
}
Các print_r các kết quả như sau:
([count] => 1 [0] => Array ([cn] => Array ([count] => 1 [0] => George) [0] => cn [givenname] => Array ([count] => 1 [0] => George) [1] => givenname [memberof] => Array ([count] => 4 [0] => CN=EQCStaff,CN=Users,DC=EQC,DC=local [1] => CN=RDS Users,OU=Security Groups,OU=Service,DC=EQC,DC=local [2] => CN=SFTP Client Folders,OU=Security Groups,OU=Service,DC=EQC,DC=local [3] => CN=EQC Staff,OU=Security Groups,OU=Service,DC=EQC,DC=local) [2] => memberof [samaccountname] => Array ([count] => 1 [0] => gortiz) [3] => samaccountname [mail] => Array ([count] => 1 [0] => [email protected]) [4] => mail [count] => 5 [dn] => CN=George,OU=Users,OU=Accounts,DC=EQC,DC=local))
[Bạn đã thử gì?] (Http://whathaveyoutried.com) – Phil
Cảm ơn bạn đã bình luận. Tôi đã chỉnh sửa câu hỏi gốc với một giải pháp mà tôi đã thử, chạy tìm kiếm thuộc tính tên hiển thị nơi sAMAccountName bằng với người dùng hiện tại. Nó trả về lỗi "No such object". –