gpt4 book ai didi

c# - 如何在 C# 中使用 LdapConnection 对象在 LDAP 中搜索用户?

转载 作者:行者123 更新时间:2023-11-30 21:34:06 32 4
gpt4 key购买 nike

我需要使用 C# 在 LDAP 目录中搜索用户。我可以使用 DirectoryEntryDirectorySearcher 来做到这一点,如下面的代码所示:

SearchResultCollection sResults = null;

DirectoryEntry dEntry = new DirectoryEntry(_LDAPConnectionString);

DirectorySearcher dSearcher = new DirectorySearcher(dEntry);
dSearcher.Filter = String.Format("(&(objectClass=user)(cn={0}))", userName);

sResults = dSearcher.FindAll();

但要求是使用标准访问用户(始终相同)创建一个LdapConnection 对象,如下所示。并使用那个特定的 LdapConnectionObject 来搜索使用用户名的用户。

LdapConnection ldapConnectionObject = new LdapConnection(
new LdapDirectoryIdentifier(_hostName, _port),
null,
AuthType.Basic);
ldapConnectionObject.Bind(accessUserCredential);

如何使用上面的 ldapConnectionObject 来搜索用户?

最佳答案

我找到了使用 LdapConnection 对象搜索的答案。所以我们可以使用 SearchRequest 使用 LdapConnection 类的 SendRequest 方法来获取返回的搜索响应。在下面的示例中,我搜索了具有 uid userName 的用户并检索了它的 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();

关于c# - 如何在 C# 中使用 LdapConnection 对象在 LDAP 中搜索用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50633893/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com