我基本上有三个问题:我需要使用.Net 3.5。
我在我的Active Directory上启用了SSL。我已导出证书并导入到其他计算机上。现在,当我尝试使用端口389访问活动目录时,它允许我连接。这是预期的行为吗?
我发现使用的很多地方" LDAPS"使用SSL时在我的目录路径中。但是当我使用它时,我得到了未知的COM异常。在MSDN上我发现没有这样的东西" LDAPS" https://social.msdn.microsoft.com/Forums/vstudio/en-US/723c3908-5806-4515-a5b2-b565e0131a2b/active-directory-connection-ldap-over-ssl
我真的需要在用户名(域\用户)之前提供域名吗?我能够连接而不用这种方式指定域名。我需要提供FQDN或SSL证书颁发的名称。
我正在使用DirectoryEntry类进行实现。
string path = "LDAP://hostname:port/SearchBase";
DirectoryEntry _directoryEntryObj = new DirectoryEntry(path, userName, password);
if(IsSSL)
_directoryEntryObj.AuthenticationType = AuthenticationTypes.SecureSocketsLayer;
object obj = _directoryEntryObj.NativeObject;
答案 0 :(得分:0)
一般来说,我不相信你会在ADS上运行,只能在LDAPS(端口636)上运行,并且普通LDAP(389)被阻止。我不认为大多数应用程序实现LDAPS,但我可能是错的。
最重要的是,证书必须有效。如果您只是导出到另一台计算机(使用其他主机名),则证书将不受信任。你使用什么样的证书?
这可能与我对证书有效性的关注有关
当我在.Net中使用ldap / ad时,我发现你也可以使用当前用户。如果您不想使用该用户,则必须使用domain \ user。我还认为您考虑了最佳做法,因为您始终可以确定指定的用户是本地帐户还是域帐户。
-
希望我能提供帮助, 问候