Поиск в Active Directory в Mac OS с помощью .Net Core - PullRequest
1 голос
/ 15 апреля 2019

Я недавно перешел с компьютера с Windows на Mac и работаю в ASP.Net Core.

В настоящее время я использую следующий код при тестировании на компьютере Windows для поиска пользователей:

User LookupAdUser(String logon)
    {
        if (String.IsNullOrEmpty(logon))
            return null;

        User user = null;
        string domain = Environment.UserDomainName;
        PrincipalContext ctx = null;

        try
        {
            int index = logon.IndexOf(@"\");
            if (index > 0)
            {
                // a domain has been specified so get information from that domain
                domain = logon.Substring(0, index);
                logon = logon.Substring(index + 1);
                ctx = new PrincipalContext(ContextType.Domain, domain);
            }
            else
            {
                ctx = new PrincipalContext(ContextType.Domain);
            }

            UserPrincipal principal = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, logon);
            if (principal != null)
            {
                user = new User
                {
                    Logon = String.Format(@"{0}\{1}", domain, logon),
                    Email = principal.EmailAddress,
                    UserName = principal.EmailAddress,
                    EmailConfirmed = true,
                    Active = true
                };
            }
        }
        catch (Exception ex)
        {
            //Logger.Error(string.Format("Failed to lookup the user ({0}) in AD...creating an empty User object", logon), ex);
            Debug.WriteLine(ex);
        }
        finally
        {
            if (ctx != null)
                ctx.Dispose();
        }

        return user;
    }

При переходе на Macbook и тестировании того же кода я получаю ошибку:

Exception thrown: 'System.PlatformNotSupportedException' in System.DirectoryServices.AccountManagement.dll

Есть ли способ обойти эту проблему, чтобы Mac OS все еще подключалась к активной директории? или это просто невозможно на Mac?

...