If I set the .NET DirectoryEntry.Path to something like:
LDAP://CN=John Smith,OU=Group Name,DC=example,DC=com
Everything works great, and I get the DirectoryEntry I need. However, I don’t know the user’s true Common Name (CN). I only know their username, “John.Smith”.
So, how can I query the username? I have tried all the following without success:
LDAP://CN=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://sAMAccountName=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://userPrincipalName=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://userPrincipalName=John.Smith@example.com,OU=Group Name,DC=example,DC=com
LDAP://uid=John.Smith,OU=Group Name,DC=example,DC=com
LDAP://o=John.Smith,OU=Group Name,DC=example,DC=com
You can’t just query by means of creating an LDAP string – you’ll need to use code for that.
Something like:
The full MSDN documentation on the System.DirectoryServices.DirectorySearcher class can be found on MSDN – it has lots of additional properties and settings.
If you’re on .NET 3.5, things have gotten quite a bit easier with a strongly-typed library of routines for handling users and groups – see this excellent MSDN article on the topic for more info.
Hope this helps
Marc