尝试通过 Ldap 连接到 AD

Try connect to AD via Ldap

我想实现一个通过Ldap连接AD的功能

我的代码:

public bool TryConnect(string server, string userName, string password)
{
    try
    {
        var credentials = new NetworkCredential(@"test\administrator123", @"P2ssw0rd");
        var ldapidentifier = new LdapDirectoryIdentifier("Test");

        using (var ldapconn = new LdapConnection(ldapidentifier, credentials))
        {
            ldapconn.AuthType = AuthType.Basic;
            var request = new SearchRequest("dc=test, dc=local", "(objectClass=user)", System.DirectoryServices.Protocols.SearchScope.Subtree, null);
            var response = (SearchResponse)ldapconn.SendRequest(request);
        }
    }
    catch (Exception)
    {
        return false;
    }

    return true;
}

这是有效的,但我不喜欢它!

在没有 try/catch 且没有一些虚拟搜索请求的情况下,是否有一些更简洁的方法来测试连接?

您可以调用 Bind() 方法来测试基本连接,而不是执行搜索,如下所示:

ldapconn.Bind();

但是我不知道没有 try/catch 的测试方法。