我在C#中使用LDAP目录服务,使用某些过滤条件从LDAP搜索用户。我想提供多个OR过滤条件。例如firstName,lastName,telephone等。当我提供所有过滤器值时它工作正常但在我提供一个或两个过滤器值时出错。
以下是我使用的示例代码:
var LdapSearcher = new DirectorySearcher(RootDomain,
"(&(objectclass=user)(sn=" + lastName.Trim() + ")(givenName=" + firstName.Trim() + "))");
当我提供sn和givenName值时,我得到了结果。但是,它是一个OR搜索,用户将输入lastName或FirstName。
如何在LDAP DirectorySearcher中应用OR Filter。?
答案 0 :(得分:3)
您需要使用|
运算符。根据您的提供,您的条件是:
objectclass
必须与“user”相等sn
或givenName
必须等于提供的值假设用户提供了名称“John Smith”。您的过滤器应如下所示:
(&(objectClass=user)(|(sn=Smith)(givenName=John)))