【问题标题】:Domain and Forest objects in .NET.NET 中的域和林对象
【发布时间】:2023-07-07 10:33:01
【问题描述】:

我希望能够使用这些框架类提供的功能,但我还需要确保设置了身份验证标志“ReadOnlyServer”,因为我的应用程序将处于只读域控制器环境中。

这些框架对象在内部创建自己的 DirectoryEntry 对象,但没有指定正确的标志。有谁知道如何强制 .NET 使用不同的身份验证标志?

目前,对 Domain.GetCurrentDomain() 或 Forest.GetCurrentForest() 的任何调用都会在 RODC 环境中挂起或崩溃我的应用程序。

【问题讨论】:

    标签: c# active-directory directoryservices


    【解决方案1】:

    我不知道有什么方法可以改变内置行为。我的猜测是这个决定是基于支持修改的类做出的,并且不想改变它们以能够追逐推荐或类似的东西。不过,我会快速浏览一下 support.microsoft.com,看看是否有可以改变这种行为的修补程序。

    您可能需要封装 Win32 API,例如DsGetDcName 并使用该输出构建上下文以传递给 Domain.GetDomain()

    【讨论】:

    • 感谢您的确认。我们实际上设法使用 IDsBrowseDomainTree 来允许用户从我们的 c# 代码中浏览域。这公开了两个方法 BrowseTo 和 GetDomains。我们将来可能会重新编写我们的自定义对话框以使用 IDsBrowseDomainTree.GetDomains() 来填充它。这样我们仍然可以有一个漂亮的对话框。