Использование DirectoryEntry для получения заблокированного статуса - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь показать, заблокирована ли учетная запись пользователя в активном каталоге или сейчас. У меня есть код, работающий сам по себе, но я пытаюсь добавить его к существующему представлению, но я не уверен, как это сделать: ниже приводится описание того, что я пытаюсь, а также 2 отдельных кода.

Спасибо!

        Session["Locked"] = Convert.ToBoolean(directoryEntry.InvokeGet("IsAccountLocked"));




                    Original:
            public static List<User> GetallAdUsers()
            {

                List<User> AdUsers = new List<User>();
                var context = new PrincipalContext(ContextType.Domain, "domain.local");
                UserPrincipal userPrin = new UserPrincipal(context);
                userPrin.Name = "*";
                var searcher = new System.DirectoryServices.AccountManagement.PrincipalSearcher();
                searcher.QueryFilter = userPrin;
                var results = searcher.FindAll();
                foreach (Principal p in results)
                {

                    AdUsers.Add(new User
                    {
                        DisplayName = p.UserPrincipalName,
                        Samaccountname = p.SamAccountName

                    });
                }
                return AdUsers;
            }




                  I am trying to add it like this:
            public static List<User> GetallAdUsers()
            {

                List<User> AdUsers = new List<User>();
                var context = new PrincipalContext(ContextType.Domain, "domain.local");
                UserPrincipal userPrin = new UserPrincipal(context);
                userPrin.Name = "*";
                var searcher = new System.DirectoryServices.AccountManagement.PrincipalSearcher();
                searcher.QueryFilter = userPrin;
                var results = searcher.FindAll();
                foreach (Principal p in results)
                {
                    var user = UserPrincipal.FindByIdentity(context, p.UserPrincipalName);
                    DirectoryEntry directoryEntry = user.GetUnderlyingObject() as DirectoryEntry;
                    var isLocked = Convert.ToBoolean(directoryEntry.InvokeGet("IsAccountLocked"));
                    AdUsers.Add(new User
                    {
                        DisplayName = p.UserPrincipalName,
                        Samaccountname = p.SamAccountName,
                        Locked = isLocked
                    });
                }
                return AdUsers;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...