Пример #1
0
        public void AddUser2Group(Label status, string userId, string groupName)
        {
            try
            {
                using (var ctx = new PrincipalContext(ContextType.Domain, _domainName))
                {
                    GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, groupName);
                    if (group != null)
                    {
                        group.Members.Add(ctx, IdentityType.SamAccountName, userId);
                        group.Save();
                    }
                }

                status.Content = "Пользователь " + userId + " добавлен в группу";

                //логируем добавление
                NLog.OperationToLog("AddUser: "******"Пользователь " + userId + " уже есть в группе";

                NLog.ExceptionToLog("Error adding user: "******"");
            }

            catch (Exception e)
            {
                NLog.ExceptionToLog("Error adding user: "******"");
            }
        }
Пример #2
0
        public ObservableCollection <User> LoadUsersInAd(string searchName)
        {
            try
            {
                using (var ctx = new PrincipalContext(ContextType.Domain, _domainName))
                {
                    UserPrincipal userFind = new UserPrincipal(ctx);
                    userFind.Enabled = true;
                    userFind.Name    = searchName;

                    using (PrincipalSearcher srch = new PrincipalSearcher(userFind))
                    {
                        // find all matches

                        foreach (var found in srch.FindAll())
                        {
                            _namesAd.Add(new User()
                            {
                                Sam = found.SamAccountName, Name = found.Name
                            });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                NLog.ExceptionToLog("Error loading users in AD: " + e + "");
            }
            return(_namesAd);
        }
Пример #3
0
        public ObservableCollection <User> LoadUsersGroup(string groupName)
        {
            try
            {
                using (var ctx = new PrincipalContext(ContextType.Domain, _domainName))
                {
                    using (var group = GroupPrincipal.FindByIdentity(ctx, groupName))
                    {
                        if (@group != null)
                        {
                            var users = @group.GetMembers(true);
                            //users.ToList().ForEach(x => Debug.WriteLine(x.UserPrincipalName));
                            //Debug.WriteLine("");


                            foreach (var principal in users)
                            {
                                var user = (UserPrincipal)principal;
                                _namesGroup.Add(new User()
                                {
                                    Sam = user.SamAccountName, Name = user.Name
                                });
                            }
                        }
                    }
                }
            }

            catch (Exception e)
            {
                NLog.ExceptionToLog("Error loading users in group: " + e + "");
            }

            return(_namesGroup);
        }
Пример #4
0
        //Проверяем, что пользователь в группе
        public static bool CheckGroups(string domainName, string grouptoCheck)
        {
            try
            {
                PrincipalContext ctx  = new PrincipalContext(ContextType.Domain, domainName);
                UserPrincipal    user = UserPrincipal.FindByIdentity(ctx,
                                                                     Environment.UserDomainName + "\\" + Environment.UserName); //получаем пользователя

                if (user != null)
                {
                    PrincipalSearchResult <Principal> groups = user.GetGroups(); //полкчаем группы пользователя
                    return(groups.Any(p => p.Name == grouptoCheck));             //проверяем, есть ли там искомая группа
                }
            }
            catch (Exception e)
            {
                NLog.ExceptionToLog("Error starting app: " + e + "");
            }
            return(false);
        }
Пример #5
0
        public void RevomeUser(Label status, string userId, string groupName)
        {
            try
            {
                using (var ctx = new PrincipalContext(ContextType.Domain, _domainName))
                {
                    GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, groupName);
                    if (group != null)
                    {
                        group.Members.Remove(ctx, IdentityType.SamAccountName, userId);
                        group.Save();
                    }
                }

                status.Content = "Пользователь " + userId + " удалён из группы";

                //логируем удаление
                NLog.OperationToLog("RemoveUser: "******"Error removing user: "******"");
            }
        }