Я встречал несколько похожих статей, но это не помогло решить проблему.
Это фрагмент кода, который я использую:
private void GetUsersFromGroup(
PrincipalContext principalContext,
string groupName,
bool isAdminGroup,
IList<User> users,
HashSet<string> userIds)
{
log.Info($"Attempting to find {groupName} group");
GroupPrincipal group = GroupPrincipal.FindByIdentity(principalContext, groupName);
log.Info($"Successfully found {groupName} group");
log.Info($"Attempting to read users from group {group.DistinguishedName}");
var addedUserIds = new List<string>();
foreach (var userPrincipal in group.Members.OfType<UserPrincipal>())
{
if ((userPrincipal.Enabled ?? false) && !userIds.Contains(userPrincipal.UserPrincipalName))
{
users.Add(new User(userPrincipal.UserPrincipalName, userPrincipal.Sid.Value, userPrincipal.DisplayName, userPrincipal.EmailAddress, isAdminGroup));
userIds.Add(userPrincipal.UserPrincipalName.ToLower());
addedUserIds.Add(userPrincipal.UserPrincipalName);
}
}
log.Info($"Successfully read users from group {group.DistinguishedName}. Users read: {string.Join(", ", addedUserIds)}");
}
Сведения об ошибке
System.DirectoryServices.AccountManagement.PrincipalOperationException: при попытке разрешить перекрестную ссылку, идентификатор безопасности целевого участника не может быть разрешен. Код ошибки - 1788. в System.DirectoryServices.AccountManagement.ADStoreCtx.ResolveCrossStoreRefToPrincipal (Object o) в System.DirectoryServices.AccountManagement.ADUtils.DirectoryEntryAsPrincipal (каталог-каталог-каталог-платформа-система. System.DirectoryServices.AccountManagement.PrincipalCollectionEnumerator.MoveNext () в System.Linq.Enumerable.d__95`1.MoveNext ()
Пожалуйста, сообщите.
Спасибо.