无异常搜索LDAP

时间:2015-12-02 22:21:50

标签: c# ldap

我正在编写一个性能敏感的代码片段,它将查询LDAP目录,在该目录中可能常见的是找不到所请求的对象(用户或组)。

我们正在使用System.DirectoryServices.Protocols.LdapConnection.SendRequest()来提交查询。

如果找不到组/用户,SendRequest()会抛出DirectoryOperationException。由于这对性能敏感,我真的希望避免异常,因为处理它们会影响性能。

是否有另一种查询LDAP的方法,以便我可以获得null / false / empty集合结果而不是异常?

(我没有看到像TrySendRequest那样显而易见的东西,但我对LDAP过滤器语法不是很熟悉,所以我想也许有些东西我不知道了)

1 个答案:

答案 0 :(得分:1)

您可以使用DirectorySearcher类。

如果FindAll方法找不到任何结果,它会返回一个空集合。

如果它找不到匹配项,它的FindOne方法会返回null。

虽然我不确定表现。您需要测试以查看使用DirectorySearcher是否可以提高性能。