c# - 如何在 LDAP 中搜索允许部分 dn 或 uo 匹配的员工?
问题描述
还有一个 LDAP 问题。
tl;博士
这是我想查找的示例 dn 和员工:
CN=ID304397,OU=Personal,OU=UnitedStates,OU=Department,DC=ad,DC=companyName,DC=net
我想查找其 DN 包含值OU=Personal
、DC=ad
、DC=companyName
和的所有员工DC=net
,givenName=Name*
同时允许其他 OU 和 DC。
所需找到的员工的示例 DN
CN=ID30434,OU=Personal,OU=Africa,OU=Department,DC=ad,DC=companyName,DC=net
CN=ID1234,OU=Personal,OU=Hawaii,OU=OtherDepartment,DC=additionalDc,DC=ad,DC=companyName,DC=net
更多细节:
使用 Softerra LDAP Administrator 我尝试使用以下过滤器搜索以下 DN
- 搜索 DN
DC=ad,DC=companyName,DC=net
- 筛选
(&(ou=Personal)(objectClass=user)(givenName=Name*))
和
- 搜索 DN
OU=Personal,DC=ad,DC=companyName,DC=net
- 筛选
(&(objectClass=user)(givenName=Name*))
除其他外,也一无所获。
在获得查询结果后,我不想诉诸于删除 ou 子句并在前端进行过滤。
TIA
解决方案
此任务可以分解为两个微不足道的组件:
- 查询所有名为 的组织单位的域
Personal
:- 搜索基础 DN:
DC=ad,DC=wedani,DC=net
- 查询过滤器:
(&(ou=Personal)(objectClass=organizationalUnit))
- 搜索基础 DN:
- 对于在步骤 1 中发现的每个 OU:
- 查询该 OU 下的用户:
- 搜索基础 DN:
<distinguishedName of OU>
- 查询过滤器:
(&(objectCategory=person)(objectClass=user)(givenName=Name*))
- 搜索基础 DN:
- 查询该 OU 下的用户:
对于所有请求,您需要将查询范围限定为subtree
(例如,递归搜索基本 DN 下的任何容器)
推荐阅读
- django - 用于比较值列表更新的 Django 两个?
- laravel - Laravel:如何在表单中使用 orderBy?
- ssl - 尝试使用 SSL 设置 MQ 连接
- swift - 在 Swift 中更改大标题导航栏的字体
- java - Storm UI 中未创建 Storm 拓扑
- python - 我可以将值与字符串一起附加到输出文本文件吗?
- matlab - 我如何计算数据信号曲线的斜率
- angular - 注入到组件的服务在构造函数之外未定义
- agens-graph - 如何在 AgnsGraph 上的第一个 CYPHER 语句中使用 with 子句?
- c# - 为什么它给我一个 NullReferenceException 但没有错误