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: "******""); } }
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); }
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); }
//Проверяем, что пользователь в группе 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); }
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: "******""); } }