使用GroupPrincipal可以从UserPrincipal获取更多信息

时间:2012-11-28 14:42:42

标签: asp.net-mvc active-directory

我正在使用GroupPrincipal查找属于AD群组成员的用户。

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

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

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

有没有人知道这方面的方法?

1 个答案:

答案 0 :(得分: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
}