使用方法GetGroups()查找我的论坛所属的群组。但是我必须通过GetGroups()
查看我所获得的所有组中的每个成员,直到没有父项为止,所以我可以拥有如下所示的树结构。
示例:
MyGroup
是我要搜索的群组。
我需要这样的输出:
> ParentGroup
> ---ChildGroup
> ------MyGroup
>
> AnotherParentGroup
> ---AnotherChildGroup
> ------AnotherChildChildGroup
> ---------MyGroup
MyGroup
是多个组的成员时会发生这种情况。然后我必须寻找每个组以及它所属的组,直到我到达根组。如上所示,这可能导致多个树。
有人可以帮助编写伪代码,或者有人可以给我一些关于使用什么方法的建议吗?
答案 0 :(得分:0)
此控制台应用程序可以执行您想要的操作,根据需要进行切换和更改:
class Program
{
static void Main(string[] args)
{
using (var context = new PrincipalContext(ContextType.Domain))
using (var user = UserPrincipal.Current)
using (var userGroups = user.GetGroups())
{
PrintGroups(userGroups, 0);
}
Console.ReadLine();
}
static void PrintGroups(PrincipalSearchResult<Principal> groups, int level)
{
foreach (var group in groups)
{
Console.Write(new string('-', level * 3));
Console.WriteLine(group.Name);
using (var groupGroups = group.GetGroups())
{
PrintGroups(groupGroups, level + 1);
}
}
}
}