2012-11-28 39 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