0

したがって、Active Directory には、追加の閉じ括弧を含むグループ名があります。

例: 私のグループ名 (何か))

私のコードでは、検索方法は次のとおりです。

string searchCN = "My Group Name (Something))";
dirSearch.Filter = string.Format("(|(&(objectCategory=group)(CN={0}*)))", searchCN);
dirSearch.PropertyNamesOnly = false;
dirSearch.ReferralChasing = ReferralChasingOption.None;
searchcCollection = dirSearch.FindAll();

すると、余分な閉じ括弧が原因で、検索が無効になり、例外がスローされます。

これを適切に検索する方法はありますか?

検索は有効ですが、エスケープ文字 \ を開き括弧と閉じ括弧のそれぞれの前に追加しようとしましたが、検索から結果が返されません。

注: で検索するとstring searchCN = "My Group Name (Something)";、結果が得られます。これは、最初の閉じ括弧の後のすべてに一致するためです....

4

2 に答える 2

2

MSDN ドキュメントの引用:

特殊文字。次の特殊文字のいずれかを検索フィルターにリテラルとして表示する必要がある場合は、リストされているエスケープ シーケンスに置き換える必要があります。

ASCII 文字エスケープ シーケンスの代替:

  • *   \2a
  • ( \28
  • ) \29
  • \ \5c
  • なし \00
  • / \2f

ここにエスケープを実行するコードがあります: https://stackoverflow.com/a/694915/986161

于 2013-08-06T17:54:42.170 に答える
0

LDAP 検索フィルターは、常にRFC 4515に準拠している必要があります。どの文字とどのようにエスケープする必要があるかについての詳細は、RFC ページのセクション 3 (pp.3-4) を参照してください。

于 2013-08-07T03:35:47.423 に答える