Мне нужно аутентифицировать учетные данные Windows пользователя, учитывая идентификатор пользователя, домен и пароль. Наша Active Directory содержит несколько доменов, некоторые из которых мы можем перечислить, используя следующий код:
var domains = System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest().Domains;
Однако у нас также есть пользователи, принадлежащие доменам за пределами леса. Однако они доступны для меня из глобального каталога (GC). Ниже приведен код, позволяющий получить запись каталога для идентификатора пользователя.
System.DirectoryServices.DirectoryEntry globalCatalogDE = new System.DirectoryServices.DirectoryEntry("GC://DC=nsroot,DC=net");
var ds = new System.DirectoryServices.DirectorySearcher(globalCatalogDE);
ds.Filter = "(&(objectClass=user)(sAMAccountName=" + userId + "))";
System.DirectoryServices.DirectoryEntry userDE = ds.FindAll()[0].GetDirectoryEntry();
Как аутентифицировать пользователя, который принадлежит домену, к которому у меня нет прямого доступа, но который доступен мне в GC?