【问题标题】:C# active directory-what if a domain controller is down?C#活动目录——如果域控制器宕机了怎么办?
【发布时间】:2020-12-15 16:41:55
【问题描述】:

我有以下代码,它检索特定用户所属的所有活动目录组:-

string[] output = null;

using (var ctx = new PrincipalContext(ContextType.Domain, "???.???.uk"))
using (var user = UserPrincipal.FindByIdentity(ctx, username))
{
    if (user != null)
    {
        output = user.GetGroups() //this returns a collection of principal objects                 .Select(x => x.SamAccountName) // select the name.  you may change this to choose the display name or whatever you want
            .ToArray(); // convert to string array
    }
}

我遇到的唯一问题是域控制器关闭时。我认为上面的代码会简单地查看其他控制器,直到找到一个启动的控制器。上面的代码怎么改写,才不会在单个域控制器不可用的情况下崩溃?

谢谢

【问题讨论】:

  • 在断开以太网电缆的情况下运行代码会发生什么?

标签: c# active-directory


【解决方案1】:

如果你想使用任何可用的域控制器,如果有的话,你可以使用域的名称而不是定义控制器。

using (var ctx = new PrincipalContext(ContextType.Domain, "example.uk"))

您可以做的另一件事是获取所有域控制器的列表并过滤它们以获得第一个可用的控制器

Domain domain = Domain.GetCurrentDomain();
var allControllers = domain.DomainControllers;

一旦你找到一个可以工作的控制器,你就可以使用它来创建你的上下文

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多