由於AD級別的一些更改,我必須在我的應用程序中更改AD中的查找。現在必須在2個不同的OU中執行搜索,而不是1個。2個組織單元中的LDAP搜索
在此刻,如果第一個搜索沒有返回任何內容,則運行第二個搜索。
是否可以將2條路徑合併爲1,因此只能搜索一次?
Thx。
using (var de = new DirectoryEntry())
{
de.Path = "LDAP://OU=ou1,OU=Users,OU=BE,DC=dc,DC=sys";
de.AuthenticationType = AuthenticationTypes.Secure;
var deSearch = new DirectorySearcher
{
SearchRoot = de,
Filter = "(&(objectClass=user) (sAMAccountName=" + userId + "))"
};
var result = deSearch.FindOne();
if (result == null)
{
//User not found in ou1
de.Path = "LDAP://OU=ou2,OU=Users,OU=BE,DC=dc,DC=sys";
de.AuthenticationType = AuthenticationTypes.Secure;
deSearch = new DirectorySearcher
{
SearchRoot = de,
Filter = "(&(objectClass=user) (sAMAccountName=" + userId + "))"
};
result = deSearch.FindOne();
if (result==null) return null;
}
using (var deUser = new DirectoryEntry(result.Path))
{
//Do something
}
}
不,你不能一次搜索2個OU--你必須分別進行兩次搜索,併合並結果。 – 2012-03-22 10:46:41
@marc_s謝謝。我會保持它的方式。如果您將此作爲答案發布,則Q可以關閉。 – Koen 2012-03-22 11:56:50