【问题标题】:How to connect LDAP using SSL如何使用 SSL 连接 LDAP
【发布时间】:2014-12-19 09:12:47
【问题描述】:

我正在尝试连接到 LDAP 以对用户进行身份验证。这是我的代码,但我无法使用我的 c# 代码设置 SSL。

using LdapConnection = Novell.Directory.Ldap.LdapConnection;
using LdapException = Novell.Directory.Ldap.LdapException;

 var ldapHost = WebConfigurationManager.AppSettings["LDAP_HOST"];
 var ldapPort = WebConfigurationManager.AppSettings["LDAP_PORT"];

 connection.Connect(ldapHost, Convert.ToInt32(ldapPort));
 sb = new StringBuilder();
 sb.Append(ldapLocation).Append(userName).Append(",").Append(ldapLocationIndia);
 connection.Bind(LdapConnection.Ldap_V3, sb.ToString(), password);

我从我的应用程序安全团队收到一条消息,我正在发送纯密码,因此我尝试通过尝试设置选项来将身份验证类型设置为安全以保护该密码

connection.SessionOptions.SecureSocketLayer = true;

但我在连接对象中没有看到任何 Sessionoption,我正在使用 Novel.ldap dll 进行 LDAP 操作。

有没有人帮帮我?如何通过网络以安全的方式发送密码以供 ldap 服务器进行身份验证。

我使用的是 636 端口。

提前致谢

【问题讨论】:

  • 你熟悉谷歌吗? Connect to LDAP using SSL
  • 你好,我试过了,我的问题是我没有在我的连接对象中获得 sessionopions 属性。这是我的问题。
  • @DJKRAZE 这个例子使用的是System.DirectoryServices.Protocols.LdapConnection 而不是Novell.Directory.Ldap.LdapConnection

标签: c# .net asp.net-mvc ldap


【解决方案1】:

略读API,我觉得只是

connection.SecureSocketLayer = true;

在调用Connect之前没有SessionOptions

如果您只是想保护Bind,您可以通过事先调用connection.startTLS() 和之后调用stopTLS() 来做到这一点(请参阅下载中的 Samples\StartTLS.cs),但听起来您需要完整的 ldaps,如果您'正在使用端口 636。

【讨论】:

  • 连接对象中没有上述选项,我是否缺少任何参考
  • 而您的连接对象是来自最新版本的 Novell.Ldap SDK 的 LdapConnection(2009-07-14 是 ChangeLog.txt 中的最后一个条目)?如果它是一个普通的 Connection 而不是 LdapConnection,那么我认为你想要 .Ssl,但我认为你真的需要使用 LdapConnection。
  • 嗨,谢谢,现在它工作正常,我以前有旧的 dll,下载了最新版本,工作很酷。非常感谢。
  • 嗨,我在设置 connection.SecureSocketLayer = true 后在连接期间收到对象引用错误;但如果评论上面的代码,它工作正常。请问有什么帮助吗?
猜你喜欢
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
相关资源
最近更新 更多