我使用LdapConnection对象搜索找到了答案。因此,我们可以使用LdapConnection类的SendRequest方法,使用SearchRequest返回搜索响应。在下面的例子中,我用uid用户名搜索了用户,并检索了其DN。
ldapConnection = new LdapConnection(
new LdapDirectoryIdentifier(_hostName, _port),
null,
AuthType.Basic
);
string searchFilter = String.Format("(&(objectClass=user)(uid={0}))", userName);
string userStore = "OU=WebsiteUsers,OU=InternalUsers";
SearchRequest searchRequest = new SearchRequest
(userStore,
searchFilter,
System.DirectoryServices.Protocols.SearchScope.Subtree,
new string[] { "DistinguishedName" });
var response = (SearchResponse)ldapConnection.SendRequest(searchRequest);
string userDN = response.Entries[0].Attributes["DistinguishedName"][0].ToString();