gpt4 book ai didi

active-directory - LDAP 搜索使用 DirectoryServices.Protocols 慢

转载 作者:行者123 更新时间:2023-12-04 07:25:41 26 4
gpt4 key购买 nike

我们正在使用 System.DirectoryServices.DirectorySearcher 进行 sAMAccountName 查找。这很好用,只是在查询某个我们怀疑很大的广告时,搜索经常会超时。在做了一些研究之后,我发现使用 System.DirectoryServices.Protocols 的搜索在查询大型 AD 时会更快。我正在尝试使用协议(protocol)重新创建我们所拥有的内容,看看这是否会对超时产生任何影响。这是目前存在的:

Dim Entry As New DirectoryEntry(anLDAPURL, aDomainUserName, aPassword)

Dim obj As Object = Entry.NativeObject 'Force Authentication on Active Directory Server

Dim Filter As String = String.Format("(sAMAccountName={0})", aDomainUserName)

Dim Search As New DirectorySearcher(Entry, Filter)
Search.PropertiesToLoad.Add(SID)
Search.PropertiesToLoad.Add(ACCOUNTISLOCKEDOUT)
Search.PropertiesToLoad.Add(ACCOUNTISDISABLED)

Dim Results As SearchResult = Search.FindOne()

这工作正常并且非常快(除了上面提到的超时情况)。这就是我试图改变它以便我可以测试它:
Dim credentials As New System.Net.NetworkCredential(aDomainUserName, aPassword)
Dim directoryIdentifier As New System.DirectoryServices.Protocols.LdapDirectoryIdentifier("ldap-ad.example.org")

Using connection As New System.DirectoryServices.Protocols.LdapConnection(directoryIdentifier, credentials, Protocols.AuthType.Basic)
Dim attributes() As String = {SID, ACCOUNTISLOCKEDOUT, ACCOUNTISDISABLED}

Dim search As New System.DirectoryServices.Protocols.SearchRequest(
"dc=example,dc=org",
String.Format("(sAMAccountName={0})", aDomainUserName),
Protocols.SearchScope.Subtree,
attributes)

Dim response As System.DirectoryServices.Protocols.SearchResponse = DirectCast(connection.SendRequest(search), System.DirectoryServices.Protocols.SearchResponse)
End Using

上面的代码有效,因为它返回一个结果,但比原来的要慢得多。我怀疑我尝试查询的方式效率低下,但我不太确定应该如何设置它以使其更快。

最佳答案

我遇到了同样的问题,最终是由于 System.DirectoryServices.Protocols.LdapConnection.SendRequest 中返回的结果中的“推荐追逐”。方法。这是由于没有任何 DNS 条目的“假”域名“corp.org”(因此 SendRequest 浪费了大量时间对结果进行 DNS 查找)。要禁用推荐追逐:

var conn = new LdapConnection(...);
conn.SessionOptions.ReferralChasing = ReferralChasingOptions.None;

关于active-directory - LDAP 搜索使用 DirectoryServices.Protocols 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16890091/

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