LDAP-Client in .Net zu openldap

Leider unterscheiden sich mal wieder die Netzwerkstacks von Windows und Linux auch bei LDAP. Über System.DirectoryServices.Protocols ist dennoch eine Verbindung möglich. Hier ein Codeschnippsel zur Verbindung mit einem openldap-Server via TLS.

using System.DirectoryServices.Protocols;

LdapDirectoryIdentifier id = new(ldapServerName, ldapServerPort);
using (LdapConnection connection = new(id) { AuthType = AuthType.Basic })
{
    // required for searching on root of ldap directory https://github.com/dotnet/runtime/issues/64900
    connection.SessionOptions.ReferralChasing = ReferralChasingOptions.None;

    // must be version 3 for TLS. TLS is not supported in version 2.
    connection.SessionOptions.ProtocolVersion = 3;

    // use TLS
    connection.SessionOptions.StartTransportLayerSecurity(null);

    NetworkCredential credential = new(ldapServerUser, ldapServerPwd);
    connection.Bind(credential);
    ...
}