0

すべての質問は .NET Framework に関連していますが、.NET Core には関連していません。NETCORE の AD グループからすべてのユーザー情報を取得する方法を探しています。

4

3 に答える 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 に答える