public StartWindowVM(IFactory factory) { _factory = factory; _currentUser = _factory.CreateWinHelper().GetCurrentWinAccount(); _dbInteract = _factory.CreateDBInteract(); Messages = new ObservableCollection <string>(); }
public AddWinUserFormVM(IList <IWinAccount> winUsers, IFactory factory) { _winUsers = winUsers; _factory = factory; NewWinUser = CreateNewWinUser(); CloseAddDialogEventSubscribe(); }
public bool CreateWinAccount(IWinAccount winUser) { if (winUser == null) { return(false); } bool isAdmin = winUser.IsAdmin; try { var groupPrincipal = GroupPrincipal.FindByIdentity(new PrincipalContext(ContextType.Machine), IdentityType.Name, isAdmin ? GetSidAdminTypeStr() : GetSidUserTypeStr()); if (groupPrincipal != null) { using (var context = new PrincipalContext(ContextType.Machine))//, null, null, ContextOptions.Negotiate)) { var user = new UserPrincipal(context) { Name = winUser.Name, Enabled = true, PasswordNeverExpires = true }; //user.SetPassword("12345"); user.Save(); groupPrincipal.Members.Add(user); groupPrincipal.Save(); } } } catch (PrincipalExistsException ex) { MessageBox.Show(ex.Message); return(false); } catch (Exception ex) { MessageBox.Show(ex.Message + "\n\nПопробуйте отключить UAC или запустить\nпрограмму от имени администратора"); return(false); } return(true); }
private bool IsExist(IWinAccount winUser) { return(_winUsers.Any(u => u.Name == winUser.Name)); }