C# 获取指定文件夹中active directory中的所有用户

C# 获取指定文件夹中active directory中的所有用户,c#,active-directory,ldap,C#,Active Directory,Ldap,我正在做一个需要查询active directory的应用程序,为此我一直在使用ldap查询 我的问题是,我真的不能使用ou=People,dc=pisoftware,dc=com,因为人员节点名称一直在更改,因为我的部门名称最近更改了很多。因此,为了避免每次名称更改时都必须更改代码的问题,我想知道是否有任何方法可以通过某种文件夹id进行查询 例如,也许我可以执行ouid=123456,dc=pisoftware,dc=com为什么您不能执行ldap查询,该查询应用过滤器仅返回objectCat

我正在做一个需要查询active directory的应用程序,为此我一直在使用ldap查询

我的问题是,我真的不能使用
ou=People,dc=pisoftware,dc=com
,因为人员节点名称一直在更改,因为我的部门名称最近更改了很多。因此,为了避免每次名称更改时都必须更改代码的问题,我想知道是否有任何方法可以通过某种文件夹id进行查询


例如,也许我可以执行
ouid=123456,dc=pisoftware,dc=com

为什么您不能执行ldap查询,该查询应用过滤器仅返回objectCategory=person。然后,您可以将该查询定位在搜索基DN处,这样即使ou/人员节点被重命名/更改,它仍然可以返回您想要的内容。这里有一个非常好的指南,向您展示了如何执行所有这些操作以及这里的查询是如何工作的:

为什么您不能执行一个ldap查询,该查询应用一个过滤器,只返回objectCategory=person。然后,您可以将该查询定位在搜索基DN处,这样即使ou/人员节点被重命名/更改,它仍然可以返回您想要的内容。这里有一个非常好的指南,向您展示了如何执行所有这些操作以及查询如何在此处工作:

您可以做的另一件事是将搜索向上移动到目录层次结构中足够远的位置,以涵盖用户可能在的任何位置并执行以下操作:

myDirectorySearcher.SearchScope=SearchScope.SubTree


然后在整个广告中进行递归子树搜索。

您可以做的另一件事是将搜索向上移动到目录层次结构中足够远的位置,以涵盖用户可能在的任何位置,并执行以下操作:

myDirectorySearcher.SearchScope=SearchScope.SubTree

然后在整个AD中进行递归子树搜索