查找用户管理的所有组

jga*_*fin 10 c# ldap active-directory

我们得到了一个特殊的多值属性.我们称之为ourOwnManagedBy可以包含管理当前组的用户或组(他们的DN).

如何检索特定用户管理的所有组的列表(借助managedByourOwnManagedBy)?

例如.假设用户是GlobalAdministrators组的成员,并且ApplicationAdministrators组具有GlobalAdministrations作为成员.最后是ourOwnManagedBy属性中具有ApplicationAdministrators的组MyApplication .

  • User 是...的成员 GlobalAdministrators
  • GlobalAdministrators 是...的成员 ApplicationAdministrators
  • MyApplication得到ApplicationAdministratorsourOwnManagedBy

如何使用该信息查找特定用户管理的所有组?是否可以对自定义属性(包含用户和组的DN)进行某种递归检查?

更新

我试过使用这样的目录搜索过滤器:

string.Format("(ourOwnManagedBy:1.2.840.113556.1.4.1941:={0})", dn);
Run Code Online (Sandbox Code Playgroud)

但我可能会错过了什么1.2.840.113556.1.4.1941呢?(MSDN页面)

小智 1

恐怕仅用一个 LDAP 查询是不可能完成这一任务的。您必须将其拆分为子查询并单独运行每个子查询,如果有很多需要迭代的内容,这反过来又会阻塞域控制器。

我尝试按照我所描述的方式进行操作,但性能非常糟糕,至少是使用 .NET 的可用模块进行操作。