J'essaye de me connecter à un serveur LDAP qui nécessite StartTLS, mais qui n'a pas de chance - chaque fois que j'utilise SessionOptions.StartTransportLayerSecurity (..) ou que SetOptions.SecureSocketLayer a la valeur true, J'ai des exceptions.Utilisation de StartTLS avec LDAP à partir de System.DirectoryServices
Voici le code que je utilise:
using (var connection = new LdapConnection(new LdapDirectoryIdentifier(config.LdapServer, config.Port, false, false)))
{
connection.SessionOptions.ProtocolVersion = 3;
connection.Credential = new NetworkCredential(config.BindDN, config.BindPassword);
connection.SessionOptions.VerifyServerCertificate += (conn, cert) => {return true;};
connection.AuthType = AuthType.Basic;
//connection.SessionOptions.SecureSocketLayer = true;
connection.SessionOptions.StartTransportLayerSecurity(null); // throws here, same if done after bind.
connection.Bind();
... do stuff with connection
}
L'exception résultant est « TlsOperationException: Une erreur non spécifiée est produite », ce qui se produit lors de l'appel de la méthode StartTransportLayerSecurity.
J'ai testé le code par rapport au serveur OpenLDAP et à Active Directory, mais cela ne fonctionne pas.
Est-ce que quelqu'un sait comment faire fonctionner StartTLS avec System.DirectoryServices?
Pourriez-vous spécifier les versions spécifiques d'OpenLDAP, d'Active Directory et en particulier les systèmes d'exploitation pour * client * et serveur impliqués ici pour affiner la portée? Il y avait une bonne quantité d'incompatibilités subtiles de pile LDAP dans la nature, ce qui pourrait encore s'appliquer au scénario potentiellement hérité que votre client pourrait utiliser. –
Salut Steffen, info était OpenLDAP 2.4.18, FreeBSD pour le serveur et le client était une machine Windows Server 2008 r2 (le code client est hébergé dans une application ASP.Net, .Net Framework 3.5 SP1). En cherchant un peu plus loin sur la version de LDAP m'a conduit à quelques articles de blog sur le sujet, y compris: http://pongo15.wordpress.com/2009/12/18/on-getting-openldap-and-windows- ldap-to-interop/- ce qui m'a aidé à aller au fond du problème. Je vais essayer d'encourager l'utilisateur à passer au dernier OpenLDAP car je suppose que ce problème est probablement corrigé dans les versions ultérieures (leur version est vraiment ancienne, publiée le 6 septembre 2009) – Bittercoder
Merci pour les informations de suivi, ce qui aidera les lecteurs plus tard concernant des problèmes comme celui-ci (+1)! J'ai [mis à jour ma réponse] (http://stackoverflow.com/posts/9020311/revisions#) en conséquence ... –