Поддержка Windows Server 2016 Active Directory? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть клиент Winform, который использует Windows Active Directory для получения имени текущей учетной записи Windows.

Можно ли узнать, будет ли это решение работать с новым Active Directory Windows Server 2016 без его настройки??

Код клиента

            public string GetCurrentActiveDirectoryAccountName()
            {
                var windowsName = WindowsIdentity.GetCurrent().Name;
                var index = windowsName.LastIndexOf("\\");
                if (index > 0)
                    windowsName = windowsName.Substring(index + 1);

                return windowsName;
            }

        public void AuthenticateActiveDirectoryAccount(string username, string password)
        {
            //Hidden code to setup variables 

            if (ADUserName.Length > 0)
                context = new PrincipalContext(ContextType.Domain, ADServer, ADUserName, ADUserPassword);
            else
                context = new PrincipalContext(ContextType.Domain, ADServer);

            using (context)
            {
                if (!context.ValidateCredentials(account, password))
                    //Hidden code to throw exception
            }
        }

        public string CheckActiveDirectoryAccount(string account)
        {
            ///Hidden code to setup variables

            if (ADUserName.Length > 0)
                context = new PrincipalContext(ContextType.Domain, ADServer, null, ADUserName, ADUserPassword);
            else
                context = new PrincipalContext(ContextType.Domain, ADServer);

            using (context)
            {
                if ((user = UserPrincipal.FindByIdentity(context, account)) == null)
                {
                    if (account.Contains("\\"))
                    {
                        userPrincipalNameList = user.UserPrincipalName.Split('\\').ToList();

                        if (userPrincipalNameList.Count > 0)
                            user = UserPrincipal.FindByIdentity(context, userPrincipalNameList[0]);
                    }
                }

                if (user != null)
                {
                    using (user)
                    {
                        userAccount = user.SamAccountName;
                        return userAccount.ToLower();
                    }
                }
            }
            return string.Empty;
        }

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Мне бы хотелось настроить тест с Microsoft Windows Server 2016, как и ожидалось, моя интеграция с AD работает так же хорошо.

0 голосов
/ 16 октября 2018

Microsoft исторически довольно осторожна с обратной совместимостью.Вот почему вы все еще можете запускать программы DOS в Windows 10.

В AD они обычно не удаляют функции.Они только добавляют их.Взгляните на эту статью, чтобы узнать, что нового в AD для Server 2016: https://docs.microsoft.com/en-us/windows-server/identity/whats-new-active-directory-domain-services

Я ожидаю, что все это будет работать с AD, работающим на Server 2016.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...