Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:如何使用DirectoryContext、域和DirectoryEntry类连接到启用SSL的Active Directory?_C#_.net_Active Directory_Ldap_Gabriel - Fatal编程技术网

C#:如何使用DirectoryContext、域和DirectoryEntry类连接到启用SSL的Active Directory?

C#:如何使用DirectoryContext、域和DirectoryEntry类连接到启用SSL的Active Directory?,c#,.net,active-directory,ldap,gabriel,C#,.net,Active Directory,Ldap,Gabriel,我想搜索林中的所有域,我采用以下方法进行搜索: foreach(Domain currDomain in Forest.GetCurrentForest().Domains) { try { DirectorySearcher searcher = new DirectorySearcher(currDomain.GetDirectoryEntry()); searcher.PageSize = 1

我想搜索林中的所有域,我采用以下方法进行搜索:

foreach(Domain currDomain in Forest.GetCurrentForest().Domains)
{
    try
    {
        DirectorySearcher searcher = new
                         DirectorySearcher(currDomain.GetDirectoryEntry());
        searcher.PageSize = 1000;
        searcher.PropertiesToLoad.Add("cn");
        searcher.PropertiesToLoad.Add("distinguishedName");
        searcher.Filter = "(&(objectClass=group))";
        using (SearchResultCollection resList = searcher.FindAll())
        {
        }
    }
}
现在我想在启用SSL的情况下做同样的事情。为了做到这一点,我试图设置

AuthenticationType 
目录条目中的属性

AuthenticationTypes.SecureSocketsLayer.
但是,当我尝试执行时,会抛出“发生操作错误”异常

有人能帮我一下吗?

安全LDAP(LDAPS)在不同于常规LDAP(389)的端口(636)上侦听。你需要告诉它在那个端口上连接。试试这个:

DirectorySearcher searcher = new
                     DirectorySearcher(new DirectoryEntry("LDAP://" + currDomain.Name + ":636");

哇!我得到了这个工作的帮助,从的答案。最初,我在第一个答案的帮助下修改了下面给出的代码:

DirectoryEntry de = new DirectoryEntry("LDAP://" + currDomain.Name + ":636")
DirectorySearcher searcher = new DirectoySearcher(searcher);
但我还是得到了“发生了一个操作错误”。然后我发现,我还有以下代码:

de.AuthenticationType = AuthenticationTypes.SecureSocketLayer.
当我移除上面的线路时,它开始正常工作,我用WireShark确认了这一点