我正在编写一个性能敏感的代码片段,它将查询LDAP目录,在该目录中可能常见的是找不到所请求的对象(用户或组)。
我们正在使用System.DirectoryServices.Protocols.LdapConnection.SendRequest()来提交查询。
如果找不到组/用户,SendRequest()会抛出DirectoryOperationException。由于这对性能敏感,我真的希望避免异常,因为处理它们会影响性能。
是否有另一种查询LDAP的方法,以便我可以获得null / false / empty集合结果而不是异常?
(我没有看到像TrySendRequest那样显而易见的东西,但我对LDAP过滤器语法不是很熟悉,所以我想也许有些东西我不知道了)
答案 0 :(得分:1)
您可以使用DirectorySearcher类。
如果FindAll方法找不到任何结果,它会返回一个空集合。
如果它找不到匹配项,它的FindOne方法会返回null。
虽然我不确定表现。您需要测试以查看使用DirectorySearcher
是否可以提高性能。