ssl - 无法使用 DirectoryServices.Protocols.LdapConnection 打开 SecureSocketLayer

标签 ssl ldap directoryservices ldapconnection

我正在尝试修复产品中的 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 );
  }

测试失败。这里有什么我想念的吗?

最佳答案

事实证明,DirectoryServices.Protocols 实现其 LDAP 调用的方式是将它们传递给低级 LDAP API。此 LDAP API 是在属性上完成获取时查询的内容。

低级 API 仅在执行方法时更新。您可以将其视为为尚未启动的可执行文件构建命令行参数。

当调用像 Bind() 这样的调用时,可执行文件就会启动,属性将报告正确的值。

因此,仅仅因为该属性表示该值为 false,所以它在必要时使用了 true。

关于ssl - 无法使用 DirectoryServices.Protocols.LdapConnection 打开 SecureSocketLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278020/

相关文章:

c# - OU 的 LDAP 查询

c# - 模拟 DirectoryEntry 的 "Properties"属性

从 openLDAP 客户端到 IBM LDAP 的 ssl 连接

batch-file - 自动将PEM文件拆分为多个证书

php - ldap_search 将不接受搜索输入中带括号的过滤器

java - 具有服务器大小限制的 LDAP 分页

database - 是否可以在不将 LDAP 密码存储为纯文本的情况下验证 LDAP 凭据

C# Active Directory PrincipalContext/UserPrincipal.IsMemberOf 错误

apache - 设置 Apache2 ubuntu 非 ssl 服务器来处理传入的 wss ://

ajax - 在 Apache 服务器上启用 ssl 后 AJAX POST 请求出现错误 301