すべての質問は .NET Framework に関連していますが、.NET Core には関連していません。NETCORE の AD グループからすべてのユーザー情報を取得する方法を探しています。
4006 次
3 に答える
2
私は .Net Core 3.1 を使用していますが、.Net Core 2 でも使用できます。
最初に NuGet パッケージ「System.DirectoryServices.AccountManagement」をインストールします。
次に、以下のコードを使用してすべての AD ユーザーを取得できます。
using System.DirectoryServices.AccountManagement;
public static List<ADUser> GetADUsers() {
var myDomainUsers = new List<ADUser>();
using (var ctx = new PrincipalContext(ContextType.Domain, "yourdomain"))
{
var userPrinciple = new UserPrincipal(ctx);
using (var search = new PrincipalSearcher(userPrinciple))
{
foreach (UserPrincipal domainUser in search.FindAll().OrderBy(u => u.DisplayName))
{
var adUser = new ADUser() {
Description = domainUser.Description,
DisplayName = domainUser.DisplayName,
DistinguishedName = domainUser.DistinguishedName,
EmailAddress = domainUser.EmailAddress,
Name = domainUser.Name,
EmployeeId = domainUser.EmployeeId,
GivenName = domainUser.GivenName,
MiddleName = domainUser.MiddleName,
Surname = domainUser.Surname,
SamAccountName = domainUser.SamAccountName
};
myDomainUsers.Add(adUser);
} //foreach
} //using
} //using
return myDomainUsers;
} //GetADGroups
次の ADUser クラスを使用している場所:
public class ADUser
{
public string SamAccountName { get; set; }
public string Description { get; set; }
public string DisplayName { get; set; }
public string DistinguishedName { get; set; }
public string EmailAddress { get; set; }
public string EmployeeId { get; set; }
public string Name { get; set; }
public string GivenName { get; set; }
public string MiddleName { get; set; }
public string Surname { get; set; }
}
AD から抽出できる属性は他にもあります。UserPrincipal クラスを見てください
于 2020-07-20T16:01:42.037 に答える