LdapConnection SearchRequest 抛出对象不存在错误 - 重新访问

LdapConnection SearchRequest throwing object does not exist error - revisited

我有与 LdapConnection SearchRequest throwing object does not exist error 相同的问题。那边的答案似乎对我不起作用

每当执行这两行代码时(Winforms 应用程序,C#)...

var request = new SearchRequest(DN, "(objectClass=*)", SearchScope.Subtree, null);
var response = (SearchResponse)LdapConnection.SendRequest(request);

...and DN 指向现有的专有名称,一切正常。 如果 DN 未指向现有的专有名称,我将收到“对象不存在”错误,而不是带有 .Entries.Count == 0 的有效 SearchResponse 对象。 我无法更改 filter 参数,这必须是 "(objectClass=*)" (以防万一;它与我所指的 Whosebug post 不同) .

有人有什么想法吗?

这是预期的行为。

您提供的 DN 是搜索根:目录中开始搜索的位置。如果那是无效的,那么它就不能执行搜索,这就是你得到异常的原因。

这与搜索成功但没有找到结果的情况不同。

如果您无法提前验证 DN 是否存在,则只捕获该异常。