![](/img/trans.png)
[英]Get LDAP-Attributes from an dirContext in Java with the “sAMAccountName” instead of “CN”
[英]LDAP Sub Query to fetch SamAccountName from CN
目前,我有如下所述的查詢,該查詢返回所有用戶,但是每個用戶都有一個稱為manager的參數,該參數返回
"CN=Peder Ellingsen,OU=Users,OU=NO,OU=Countries,DC=xds,DC=xxx,DC=com"
需要samAccountName
而不是上面的CN,需要LDAP子查詢的幫助,可以通過修改下面提到的查詢來幫助我直接獲取samAccountName
希望避免僅獲取samAccountName
對LDAP服務器造成雙重打擊。
(&(objectCategory=person)(objectClass=user)(memberof=cn=MyCompass_NO,OU=Groups,OU=Common,OU=Applications,DC=xds,DC=xxx,DC=com))
假設您的過濾器就是您上面編寫的,請嘗試以下操作
(&(objectCategory=person)(objectClass=user)(sAMAccountName=*)(memberof=cn=MyCompass_NO,OU=Groups,OU=Common,OU=Applications,DC=xds,DC=xxx,DC=com))
這將使第一個參數為SamAccountName = username
如果您只想打印Samaccountname,請使用此
Attributes attrs = result.getAttributes();
Attribute attr = attrs.get(sAMAccountName);
if(attr!=null)
{
NamingEnumeration e = attr.getAll();
while (e.hasMore()) {
String value = (String) e.next();
System.out.println(value);
}}
如果要列出所有Samaccount名稱,請使用此名稱
(&(objectCategory=person)(sAMAccountName=*))
按您想要的內容進行過濾,並獲得sAMAccountName,這是我在服務器中所做的工作:
ldapsearch -h host -p port -b dc=organization.com -W -D cn=admin,dc=organization.com '(&(objectclass=person)(uid=someuid))' sAMAccountName
有趣的部分是過濾器
'(&(objectclass=person)(uid=someuid))' sAMAccountName
您可以在其中按objectclass和uid進行過濾,並獲取sAMAccountName屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.