通过递归获取Principal的所有AD组是否安全?

时间:2013-12-16 11:26:02

标签: .net active-directory

考虑以下.Net递归代码:

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()是否正确地做我想做的事情:列出所有群组?

我很不确定如何将群体彼此联系起来,如果有人可以链接我解释此事的任何文件(我自己没有找到),我会很感激。

1 个答案:

答案 0 :(得分:1)

基于this question然后:

  

是否可以在AD中使用嵌套组中的循环?

将是。

因此,您需要避免再次处理同一个组(例如,保留一个列表,可能是已经处理过的组HashSet并在递归之前检查)。