C#active directory如果域控制器关闭怎么办?
我有以下代码,用于检索特定用户所属的所有active directory组:-C#active directory如果域控制器关闭怎么办?,c#,active-directory,C#,Active Directory,我有以下代码,用于检索特定用户所属的所有active directory组:- string[] output = null; using (var ctx = new PrincipalContext(ContextType.Domain, "???.???.uk")) using (var user = UserPrincipal.FindByIdentity(ctx, username)) { if (user != null) { o
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
}
}
我唯一的问题是当域控制器关闭时。我认为上面的代码只需查看其他控制器,直到找到一个启动的控制器。如何重写上述代码,以便在单个域控制器不可用时不会崩溃
谢谢如果您想使用任何可用的域控制器,如果有,您可以使用域的名称而不是定义控制器
using (var ctx = new PrincipalContext(ContextType.Domain, "example.uk"))
您可以做的另一件事是获取所有域控制器的列表,并对它们进行筛选以获得第一个可用的控制器
Domain domain = Domain.GetCurrentDomain();
var allControllers = domain.DomainControllers;
一旦找到一个工作的控制器,就可以使用它来创建上下文在断开以太网电缆的情况下运行代码时会发生什么?