我遇到了将旧的VB6实用程序转换为现在使用.Net的挑战。它是一个LDAP导入工具。旧工具使用ADO ADSDSOObject。这在某些情况下有一些限制,我们想要替换它。
所以,我使用LDAPConnection,PageResultRequestControl和Searchrequest对象在.Net中编写了新代码。
到目前为止,它运作良好。但是,对于一些可以与ADO ADSDSOObject一起使用的复杂查询,我从新实现中得到零结果(没有错误)。
因为LDAP因报告无意义的错误而臭名昭着,所以我很难解决。
以下是一个根本不返回结果(并且没有错误)的查询示例:
SELECT
Samaccountname, sn, givenName, middleName, telephoneNumber,
mail, department, title, EmployeeId, description, company
FROM LDAP://server.tld:389/CN=Users,DC=aaaa,DC=bbbb,DC=cccc,DC=dddd
WHERE employeeid='*' AND sn='*' AND department='*'
AND (extensionAttribute15='page'
OR ((company='3*' OR company='6*' OR company='49*'
OR company='86065600' OR company='86088900')
AND (extensionAttribute15<>'nopage'))