Используя C#, каков способ узнать, работает ли мой код на IS контроллером домена.Как определить, является ли машина, которую я использую, контроллером домена
Я не хочу «выходить» и собирать информацию о каких-либо других контроллерах домена в домене ... Я ТОЛЬКО интересуюсь, работает ли мой компьютер на IS контроллере домена или нет. Кроме того, мне не нужно знать, является ли его основным контроллером домена ... только если он является контроллером домена.
Вот что я пытался
TRIAL 1
private bool IsDomainController()
{
Domain domain = Domain.GetCurrentDomain();
string domainName = domain.ToString();
bool bIsDC = false;
DirectoryContext ctx = new DirectoryContext(DirectoryContextType.Domain, domainName);
try
{
using (DomainController dc = DomainController.FindOne(ctx, LocatorOptions.ForceRediscovery))
{
bIsDC = true;
}
}
catch (Exception)
{
bIsDC = false;
}
return bIsDC;
}
и
TRIAL 2
public bool IsThisMachineIsADomainController()
{
Domain domain = Domain.GetCurrentDomain();
string thisMachine = String.Format("{0}.{1}", Environment.MachineName, domain.ToString());
thisMachine = thisMachine.ToLower();
//Enumerate Domain Controllers
List<string> allDcs = new List<string>();
string name = "";
foreach (DomainController dc in domain.DomainControllers)
{
name = dc.Name.ToLower();
allDcs.Add(name);
}
return allDcs.Contains(thisMachine);
}
ли любой из них подходит и почему или почему нет?
Где код, который вы попробовали первый? –
только что опубликовал код, который у меня есть – user3174075
Успешно ли они работают? Если да, то вам лучше попробовать http://codereview.stackexchange.com/, потому что SO - не лучшее место для вопросов «что является лучшим». –