Question

J'essaie de corriger un bogue avec SSL dans un produit et j'ai remarqué que, bien que le code définisse SSL comme étant vrai, à la ligne suivante du code, SSL est toujours à faux. J'ai écrit un test unitaire pour cela et le test unitaire confirme mes soupçons.

  [TestMethod]
  public void SecureSocketLayerSetToTrue( )
  {
     var ldapConnection = new LdapConnection( 
                                new LdapDirectoryIdentifier( "ldap.test.com", 636 ));
     ldapConnection.SessionOptions.SecureSocketLayer = true;
     Assert.IsTrue( ldapConnection.SessionOptions.SecureSocketLayer );
  }

Le test échoue. Y a-t-il quelque chose qui me manque?

Était-ce utile?

La solution

Il s'avère que les appels LDAP de DirectoryServices.Protocols sont mis en œuvre en les transmettant à une API LDAP de bas niveau. Cette API LDAP est ce qui est demandé lorsqu'un get est effectué sur la propriété.

L'API de bas niveau n'est mise à jour que lorsque les méthodes sont exécutées. Vous pouvez penser à cela, car il construit des arguments de ligne de commande pour un exécutable qui n'a pas encore été lancé.

Lorsqu'un appel comme Bind () est effectué, l'exécutable est lancé et les propriétés affichent la valeur correcte.

Ainsi, juste parce que la propriété disait que la valeur était false, elle utilisait la valeur true lorsque cela était nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top