Учитывая следующий .Net рекурсивного кода:Безопасно ли получить все группы AD для принципала с рекурсией?
public void FindAllGroups(PrincipalSearchResult<Principal> groups)
{
foreach (Principal p in groups.ToList())
{
PrincipalSearchResult<Principal> childGroups = p.GetGroups();
if (childGroups.Count() > 0)
{
FindAllGroups(childGroups);
}
}
}
Есть ли риск, что этот код будет конец вверх рекурсия навсегда?
Положите его как объект Active Directory, возможно ли иметь циклы в вложенных группах в AD?
GetGroups()
правильный способ сделать то, что я хочу: Список всех групп?
Я совершенно не уверен, как группы могут быть связаны друг с другом и были бы благодарны, если бы кто-то мог связать мне любую часть документации, которая объясняет это дело (я не нашел его сам).
Хорошо. Тогда у групп могут быть какие-то отношения? Например, две группы могут «владеть» одной и той же группой? –
Это глупый вопрос от меня, ответ: Конечно. Поскольку пользователи могут принадлежать нескольким группам, группа также может принадлежать нескольким группам. Спасибо за ваше время! –
@thibaultd В основном да (IIRC), но есть исключения. Например. Собственность и «Управляемые» являются единственными. – Richard