支持 NTLM 的 .NET LDAP 库
.NET LDAP Libraries with NTLM support
我试图在我的应用程序中替换 Microsoft 的 DirectorySearcher,主要是因为它在我们的用例中真的很慢(当我搜索单个用户帐户以使用 sAMAccountName 检索他的 givenName、sn 和 objectGUID 时作为过滤器,每个用户大约需要 400 毫秒,在某些情况下我必须为许多用户获取它)。
所以我尝试了 Novell LDAP,包括原始版本和 .NET Standard 版本。
原始性能很好,但 .NET Standard 更好。同样的情况,微软的需要 400 毫秒,这个需要 3 毫秒。到目前为止一切顺利。
为了快速达到这一点,我硬编码了我的域凭据。现在尝试在我们的应用程序中替换 Microsoft 的实现,我意识到我们正在使用 NTLM 身份验证,我希望此更改对我的用户透明(不必向他们询问他们的域凭据)。
查看协议细节,使用 wireshark 的 LDAP 调用和 Novell 的源代码,我很快意识到这是他们没有实现的东西。所以,我有点回到原点...
我需要一个可以通过 NTLM (sasl gss-spnego) 进行身份验证(绑定)的快速 LDAP 库。
有这种东西吗?我搜索了 nuGet 并询问了 google,但没有找到太多。
谢谢!
如果您将 SASL 与 NTLM 一起使用,您可能会发现任何 LDAP 库运行缓慢。
简单绑定意味着您在一次请求中获得授权,在 TCP 三向握手之后。无论是 lib,使用 SASL 和 NTLM,在发送搜索请求之前还有另外三个消息。
我发现 MS system.directoryservices.protocols 命名空间是一个非常快速的 LDAP 客户端库。根据您的用例,您可以进行许多优化。 https://msdn.microsoft.com/en-us/library/ms808539.aspx
我会对目录搜索器上的 theitsme86 提出异议。它使用 ADSI,这意味着它必须先转换为 LDAP 客户端。 S.DS.P 让您制作纯 LDAP。
我试图在我的应用程序中替换 Microsoft 的 DirectorySearcher,主要是因为它在我们的用例中真的很慢(当我搜索单个用户帐户以使用 sAMAccountName 检索他的 givenName、sn 和 objectGUID 时作为过滤器,每个用户大约需要 400 毫秒,在某些情况下我必须为许多用户获取它)。
所以我尝试了 Novell LDAP,包括原始版本和 .NET Standard 版本。 原始性能很好,但 .NET Standard 更好。同样的情况,微软的需要 400 毫秒,这个需要 3 毫秒。到目前为止一切顺利。
为了快速达到这一点,我硬编码了我的域凭据。现在尝试在我们的应用程序中替换 Microsoft 的实现,我意识到我们正在使用 NTLM 身份验证,我希望此更改对我的用户透明(不必向他们询问他们的域凭据)。
查看协议细节,使用 wireshark 的 LDAP 调用和 Novell 的源代码,我很快意识到这是他们没有实现的东西。所以,我有点回到原点...
我需要一个可以通过 NTLM (sasl gss-spnego) 进行身份验证(绑定)的快速 LDAP 库。
有这种东西吗?我搜索了 nuGet 并询问了 google,但没有找到太多。
谢谢!
如果您将 SASL 与 NTLM 一起使用,您可能会发现任何 LDAP 库运行缓慢。
简单绑定意味着您在一次请求中获得授权,在 TCP 三向握手之后。无论是 lib,使用 SASL 和 NTLM,在发送搜索请求之前还有另外三个消息。
我发现 MS system.directoryservices.protocols 命名空间是一个非常快速的 LDAP 客户端库。根据您的用例,您可以进行许多优化。 https://msdn.microsoft.com/en-us/library/ms808539.aspx
我会对目录搜索器上的 theitsme86 提出异议。它使用 ADSI,这意味着它必须先转换为 LDAP 客户端。 S.DS.P 让您制作纯 LDAP。