I am using LDAP Directory Services in C# to search users from LDAP with some filter criteria. I want to supply multiple OR filter criteria. For example firstName, lastName, telephone etc. It works fine when I supply all filter values but gives error when I just supply one or two filter values.
Here is the sample code I am using:
var LdapSearcher = new DirectorySearcher(RootDomain,
"(&(objectclass=user)(sn=" + lastName.Trim() + ")(givenName=" + firstName.Trim() + "))");
I get the result when I supply both sn and givenName values. However, it's an OR search and user will enter either lastName or FirstName.
How to apply OR Filter in LDAP DirectorySearcher.?
An attribute syntax is the LDAP equivalent of a data type. Every attribute type is associated (either explicitly or implicitly) with an attribute syntax, and all values for attributes of that type must abide by the constraints of that syntax.
1. Search Filter is a basic LDAP Query for searching users based on mapping of username to a particular LDAP attribute. 2. The following are some commonly used Search Filters. You will need to use a search filter which uses the attributes specific to your LDAP environment.
You need to use the |
operator. From what you've provided, your conditions are :
objectclass
must be equal "user"sn
OR givenName
must be equal to the provided valueLet's say the user has provided the name "John Smith". Your filter should look like :
(&(objectClass=user)(|(sn=Smith)(givenName=John)))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With