我正在使用pytholdap查询activedirectory
我有这个DN
CN=Whalen\, Sean,OU=Users,OU=Users and Groups,DC=example,DC=net
它在查询中用作基函数很好,但是如果我尝试在类似这样的搜索过滤器中使用它
^{pr2}$我得到一个Bad search filter
错误。从我的测试来看,CN中的逗号似乎是罪魁祸首,尽管我用一个反斜杠(\
)逃过了它。但是,逗号在Microsoft documentation中没有作为需要在筛选器中转义的字符列出。在
我错过了什么?在
LDAP筛选器规范为以下字符
* ( ) \ NUL
指定了特殊含义,当在搜索筛选器中使用时,这些字符应该用反斜杠转义,后跟字符的两个字符ASCII十六进制表示形式(rfc2254):这意味着在搜索筛选器中,用于转义可分辨名称'特殊字符(包括逗号)的任何反斜杠都必须用
^{pr2}$\5c
表示:以下是在搜索筛选器中使用时必须用}转义的dn特殊字符列表:
\
或{我在用带有转义字符的
member:1.2.840.113556.1.4.1941
进行搜索时遇到过非常奇怪的行为。在似乎当搜索词被“正确”转义时搜索失败,但当搜索词未转义时搜索成功!在
相反,使用
member
的纯搜索不管搜索词是否转义都有效。在下面是一个PowerShell示例。在
因此,我看不到一个可接受的解决方案,因为似乎没有可靠的方法来转义可能包含各种特殊字符的DN:\*()
相关问题 更多 >
编程相关推荐