我在这里基本上有三个问题:我需要使用.Net 3.5。
我已经在活动目录上启用了SSL。我已导出证书,并将其导入到另一台计算机上。现在,当我尝试使用端口389访问活动目录时,它使我可以进行连接。这是预期的行为吗?
使用SSL时,我发现许多地方在目录路径中使用“ LDAPS”。但是当我使用它时,我得到了未知的COM异常。在MSDN上,我发现没有类似“ LDAPS”的东西
https://social.msdn.microsoft.com/Forums/vstudio/en-US/723c3908-5806-4515-a5b2-b565e0131a2b/active-directory-connection-ldap-over-ssl
我真的需要在用户名(domain \ user)之前提供域名吗?我无需指定域名就可以连接。我需要提供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;
最佳答案
如果您不停用普通LDAP,则这是正常现象,因为LDAPS使用其他端口,请参见:https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
通常,我不相信仅在LDAPS(端口636)上运行且阻止了普通LDAP(389)的AD不会使您望而却步。我不认为大多数应用程序都实现LDAPS,但是我可能是错的。
最重要的是,证书必须有效。如果您只是导出到另一台计算机(具有另一个主机名),则该证书将不受信任。您使用哪种证书?
这可能与我对您证书有效性的关注有关
当我在.Net中玩ldap / ad时,我发现您也可以只使用当前用户。如果您不想使用该用户,则必须使用domain \ user。我还认为您认为是最佳实践,因为您始终可以确定指定的用户是本地帐户还是域帐户。
-
希望我能帮上忙,
问候
关于c# - 为什么即使启用了SSL,也可以在端口389上访问事件目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27527759/