C# 在RODC环境中使用Forest.GetCurrentForest

C# 在RODC环境中使用Forest.GetCurrentForest,c#,active-directory,ldap,adam,C#,Active Directory,Ldap,Adam,我在与只读域控制器通信时使用Forest.GetCurrentForest()方法时遇到问题 引发的异常是: System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException:服务器无法运行 注意:与RWDC通信时,一切正常 以前,为了解决与RODC通信时的其他问题,我们必须修改创建DirectoryEntry对象的方式,使用AuthenticationType.ReadOnlyServer标志。但是我已经看到

我在与只读域控制器通信时使用Forest.GetCurrentForest()方法时遇到问题

引发的异常是:

System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException:服务器无法运行

注意:与RWDC通信时,一切正常

以前,为了解决与RODC通信时的其他问题,我们必须修改创建DirectoryEntry对象的方式,使用AuthenticationType.ReadOnlyServer标志。但是我已经看到(使用reflector)GetCurrentForest()方法使用Utils类创建自己的DirectoryEntry对象,而Utils类又使用DefaultAuthType

因此,我的问题是:是否有人知道如何设置/修改DefaultAuthType,以便它可以返回所需的身份验证类型?有更好的方法吗?这段代码的目的只是获取服务器可见的可用域列表

谢谢


这个问题似乎没有一个简单的答案。最后我们重写了代码,不使用域/林对象…

我要做的是“克服”这个问题,我首先尝试获取
林.GetCurrentForest()
,如果抛出异常,我会使用
域.GetComputerDomain()
作为最后一个解决方案,当然,该列表现在只包含web服务器加入的域