如何通过LDAP搜索属性与指定模式匹配的项目?
我正试图在LDAP服务器上搜索具有指定属性的所有项目 我正在处理的LDAP模式通过以下方式记录用户角色:如何通过LDAP搜索属性与指定模式匹配的项目?,ldap,ldap-query,Ldap,Ldap Query,我正试图在LDAP服务器上搜索具有指定属性的所有项目 我正在处理的LDAP模式通过以下方式记录用户角色: 创建可能包含多个属性(角色)之一的对象类型,以及 将每个角色的值设置为与其名称相同 这些属性不共享公共基类型,并且objectclass(“roleuser”)包含非角色的其他属性。角色通过以“角色”结尾的属性名称进行区分。(恶心。) 例如。用户的对象类型将包括对象类型roleuser,并且可能具有以下属性=值对: cn=userX objectclass=roleuser,...
cn=userX
objectclass=roleuser,...
managerrole=managerrole
clerkrole=clerkrole
cn=userY
objectclass=roleuser,...
managerrole=managerrole
cn=userZ
objectclass=roleuser,...
clerkrole=clerkrole
我能查到职员,经理,经理职员。但是,当我查找clerks(使用(&(clerkrole=*)(objectclass=roleuser))
)时,我得到了角色clerk(userZ)和角色manager和clerk(userX)的用户
我可以指定(&(clerkrole=*)(!managerrole=*)(objectclass=roleuser))
)来获取不是经理的职员。但这需要我列出(并否定)所有可能的其他角色
出于各种原因,我不希望我的应用程序必须知道所有可能的角色,因为这些角色的变化可能比我的应用程序要快
所以。是否有一种方法可以查询模式中roleuser
中所有名为*role
的属性,以便动态指定(并否定)所有其他角色
还是有一种方法查询(CelkPyrase= *),并且没有其他属性名为*角色存在于RoLeUsor上?
< P>您是否考虑动态地建立过滤器?您可以查询架构并检索以“role”结尾的所有属性,然后对它们进行迭代,丢弃所需的属性并为每个项目添加(!\uuuuuuuuuu role=*),然后添加所需属性的过滤器并使用该过滤器进行查询。您使用的是什么LDAP服务器?我这样问是因为查询模式可能是一种解决方案,但这取决于服务器的类型。