【发布时间】:2010-11-16 22:23:06
【问题描述】:
在我的 Active Directory (my.domain) 中,我有很多用户组(UserGrp1、UserGrp2 等)。一个用户可以存在于多个组中。我目前的代码允许我使用 GroupPrincipal 类来查找一个组,然后从那里获取该组的所有成员(请参见下面的代码)。 但是,我真正需要的是找到用户所属的所有组。 例如,我有一个名为 Joe Test (sAMAccountName=JOETEST) 的域用户,我需要找到他所属的所有组属于。做这个的最好方式是什么?
如果我遍历 GetMembers() 方法返回的所有成员,我可以确定用户是否属于一个组(如下所示),但这对我来说似乎效率低下,如果没有更有效的方法,我会感到惊讶.
using (PrincipalContext ctx = new PrincipalContext(
ContextType.Domain, "my.domain", "DC=my,DC=domain")) {
if (ctx != null) {
using (GroupPrincipal gp = GroupPrincipal.FindByIdentity(ctx, "UserGrp1")) {
// Get all group members
PrincipalSearchResult<Principal> psr = gp.GetMembers();
foreach (Principal p in psr) {
// other logic
}
}
}
}
在此先感谢我在这方面收到的任何帮助。
【问题讨论】:
标签: .net active-directory