如何在System.DirectoryServices.ActiveDirectory中使用SSL?

时间:2012-09-20 10:25:27

标签: c# .net

我设法为SSL设置了一个Windows 2003 Active Directory,包括StartTLS和LDAPS,我已经使用Windows Resource Toolkit中的Ldp.exe进行了验证。我也可以使用C#.NET中的LdapConnection对象查询目录的内容。

我想继续为我的Active Directory查询使用SSL,例如:

Domain.GetDomain

我尝试过使用

domain = Domain.GetDomain(new DirectoryContext(DirectoryContextType.DirectoryServer, mydomain + ":636", username, password));

但似乎没有将LDAPS与端口636对话,我得到以下异常

System.DirectoryServices.ActiveDirectory.ActiveDirectoryObjectNotFoundException: Domain controller "ad.rambutan.com:636" does not exist or cannot be contacted.

Forest.GetForest也是如此。

有没有办法让Domain.GetDomain通过SSL工作?无论是StartTLS还是LDAPS都可以。

2 个答案:

答案 0 :(得分:0)

DirectoryContextType的文档未提及LDAPS,因此我认为您无法使用它。

答案 1 :(得分:0)

您似乎无法使用Domain.GetDomain执行此操作,但您可以通过将DirectoryEntry属性设置为AuthenticationType来使用SecureSocketsLayer类来执行此操作。有关示例,请参阅DirectorySearcher not working for Windows 7 64 bit or 32 bit over network