【问题标题】:Search for Users/People Across Multiple specific OU GUIDs跨多个特定 OU GUID 搜索用户/人员
【发布时间】:2020-05-22 11:21:45
【问题描述】:
基本上,我正在开发一个用于管理 Active Directory 的应用程序,我添加了一个重要的“安全”层,即能够将允许他们访问/搜索的 OU GUID 分配给特定用户。
我现在面临的问题是,考虑到有时会收集大量 GUID (1200ish) 并且仅返回来自这些特定 OU 的结果,似乎没有一种查询 AD 的好方法。
有谁知道是否有一种方法可以使用多个 DirectorySearchers 或类似方法来实现这一目标而不会对性能造成太大影响?
-- 这在 SQL 中很容易... :-/
【问题讨论】:
标签:
c#
active-directory
ldap
ou
【解决方案1】:
有几种方法可以做到这一点:
- 如果您想使用多个
DirectorySearcher 对象,您可以为每个要搜索的OU 创建一个DirectorySearcher,并将每个SearchRoot 设置为您要搜索的OU。
- 在整个域上进行一次搜索,并在获得结果后过滤掉您不想显示的结果。这可能会比选项 1 执行得更快。
- 直接更改 AD 中的权限。如果您不希望用户查看 OU 中的对象,请修改该 OU 的权限,使其无法读取。然后,您只需正常进行所有搜索,而不必担心过滤掉任何内容。这是假设您使用用户自己的凭据来查询 AD。
但是这里的事情确实变得复杂了。如果您不希望用户 A 看到 OU B 中的对象,您可以对用户 A 隐藏该 OU,当然。但是用户 A 可能仍然能够看到其中包含来自 OU B 的用户的组。所以用户 A 仍然会看到 OU B 存在的证据。所以,