2012-11-28 36 views
0

我正在使用GroupPrincipal查找属于AD组成员的用户。使用GroupPrincipal可以从UserPrincipal获取更多信息

GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, "Advisors"); 

我需要从此查找中获取EmployeeID字段,但我相信这只能使用UserPrincipal。

var members = group.Members.Select(x => new DomainContext() { EmployeeID = x.EmployeeId, FullName = x.DisplayName }).ToList(); 

有没有人知道这个方法?

回答

1

除非您使用底层的DirectoryEntry/DirectorySearcher类,否则您必须使用UserPrincipal。

您应该使用.GetMembers(),而不是.Members那么你可以做这样的东西:

var userMembers = group.GetMembers().OfType<UserPrincipal>(); 
foreach(var member in userMembers) { 
    string empid = member.EmployeeId; //do something with the EmployeeId 
} 
+0

谢谢你这么多@DigitalD!完美的作品。 – Stephen