我可以从多值属性中检索客户的部门编号吗?让我们假设我有一个用户可以访问几个客户,所有客户都有其他部门结构。 因此,我想将这些信息存储在具有以下结构的多值字段中:customer:departmentNumber
现在举例:我想从客户 400 检索部门编号 124 ,这怎么可能?以下用户示例:
dn: cn=joe,ou=people,dc=company,dc=com
cn: joe
department number: 300: 1; 400: 124; 108: 25;
我只想检索 124 ,没有别的。 这是这样的吗? departmentNumber = 400:*;
答案 0 :(得分:0)
在显示的结构中,您无法识别“客户400”。
BTW:“部门编号”不是有效的LDAP属性名称。
不确定结构的格式是什么。
在LDIF格式中,结构更像是:
dn: cn=joe,ou=people,dc=company,dc=com
cn: joe
departmentnumber: 300
departmentnumber: 1
departmentnumber: 400
departmentnumber: 124
departmentnumber: 108
departmentnumber: 25
customer: 400
在哪种情况下过滤器将是:
(&(customer=400)(departmentnumber=400))
如果您使用的是ldapsearch,它将类似于:
ldapsearch -D“cn = Administrator”-w secret -p 389 -h dc.company.com -b“ou = people,dc = company,dc = com”-s sub“(&(customer = 400) )(departmentnumber = 400))“
这将返回与过滤器匹配的所有条目“(&(customer = 400)(departmentnumber = 400))”。
如果您收到searchResult,您可以放心,departmentnumber = 400。
您可能会得到多个结果。
-Jim
答案 1 :(得分:0)
你不能只检索
departmentnumber: 400: 124
如果用户条目包含属性 departmentnumber 的值大于on。 LDAP将返回该用户条目的deparmentnumber的所有值,您将需要在客户端排除那些您不想要的值。
从检索的角度来看,你能做的最好的就是......
dn: cn=joe,ou=people,dc=company,dc=com
departmentnumber: 300: 1
departmentnumber: 400: 124;
departmentnumber: 108: 25;
如果departmentnumber也是多值的,则无法保证排序顺序。