我正在編寫一個性能敏感的代碼片段,它將查詢LDAP目錄,在該目錄中找不到所請求的對象(用戶或組)可能很常見。搜索LDAP無例外
我們使用System.DirectoryServices.Protocols.LdapConnection.SendRequest()來提交查詢。
如果找不到組/用戶,SendRequest()將拋出DirectoryOperationException。由於這是性能敏感,我真的想避免例外,因爲處理它們的性能受到影響。
是否有一種替代方法來查詢LDAP,使我可以得到一個空/虛假/空的收集結果,而不是一個異常?
(我沒有看到任何明顯的像TrySendRequest,但我不是很熟悉LDAP過濾器語法,所以我想也許還有什麼我失蹤)
您是否試過[DirectorySearcher](https://msdn.microsoft.com/en-us/library/system.directoryservices.directorysearcher(v = vs.110).aspx)類? –
我敢說,查詢本身會比處理異常花費更多。如果你真的出於效率的最微小的一點,並且ldap不是太大:爲什麼不將有關信息和compary緩存在內存中? – Marged
@Marged好了,這就是問題 - 它可能是一個非常大的LDAP目錄。就像潛在的超過300,000個用戶一樣(它在一個產品中,而不是內部代碼,所以我不能控制目錄的大小/拓撲結構等) – JMarsch