我正在尝试修复一个产品中的SSL错误,并注意到虽然代码将SSL设置为true,但在代码的下一行中,SSL仍然是false。我为此编写了一个单元测试,单元测试证实了我的怀疑。
[TestMethod]
public void SecureSocketLayerSetToTrue( )
{
var ldapConnection = new LdapConnection(
new LdapDirectoryIdentifier( "ldap.test.com", 636 ));
ldapConnection.SessionOptions.SecureSocketLayer = true;
Assert.IsTrue( ldapConnection.SessionOptions.SecureSocketLayer );
}测试失败。我是不是漏掉了什么?
发布于 2008-11-16 09:14:40
事实证明,DirectoryServices.Protocols实现其LDAP调用的方式是将它们传递给一个低级的LDAP API。此LDAP API是在属性上执行get时查询的API。
只有在执行方法时,才会更新低级API。您可以将其看作是为尚未启动的可执行文件构建命令行参数。
当进行像Bind()这样的调用时,然后启动可执行文件,并且属性将报告正确的值。
因此,仅仅因为该属性说明值为false,它就会在必要时使用true。
https://stackoverflow.com/questions/278020
复制相似问题