![](/img/trans.png)
[英]DirectorySearcher not returning any results from LDAP query (C#)
[英]LDAP Query in c# using DirectorySearcher does not return anything
我使用與AD的根綁定的DirectorySearcher運行以下LDAP查詢:
(&(|(objectClass=container)(objectClass=organizationalUnit))(!(distinguishedName=OU=)(*&^%\\\#@$!\\\#$%^,OU=xyxy.yxyx,OU=yyyy,OU=tttt,DC=base,DC=local)))
但是,它不返回任何OU。 當我使用另一個如下所示的OU運行相同的查詢時,我得到了AD中的所有其他OU:
(&(|(objectClass=container)(objectClass=organizationalUnit))(!(distinguishedName=OU=SOMEOU,OU=xyxy.yxyx,OU=yyyy,OU=tttt,DC=base,DC=local)))
基本上,我試圖對所有不包括某些特定OU的OU運行查詢。 我想這與OU名稱中的特殊字符有關。
我假設OU的名稱是)(*&^%\\#@$!\\#$%^
因為它出現在活動目錄用戶和計算機中。如果打開屬性編輯器,您將找到以下值distinguishedName屬性: OU=)(*&^%\\\\\\#@$!\\\\\\#$%^,OU=....
(請注意,此處的反斜杠數量增加了一倍,並添加了一個額外的反斜杠)。
基於此MSDN頁面 ,需要轉義(
, )
, *
和\\
(及其他)。
*變成\\ 2a
(變成\\ 28
)變成\\ 29
\\變成\\ 5c
因此,您在LDAP過濾器中的OU名稱應變為OU=\\29\\28\\2a&^%\\5c\\5c\\5c#@$!\\5c\\5c\\5c#$%^,OU=....
請注意,您需要在此處轉義\\
字符,或在C#中使用@
創建這樣的逐字字符串:
string dn = @"OU=\29\28\2a&^%\5c\5c\5c#@$!\5c\5c\5c#$%^,OU=...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.