コード例 #1
0
 public StartWindowVM(IFactory factory)
 {
     _factory     = factory;
     _currentUser = _factory.CreateWinHelper().GetCurrentWinAccount();
     _dbInteract  = _factory.CreateDBInteract();
     Messages     = new ObservableCollection <string>();
 }
コード例 #2
0
 public AddWinUserFormVM(IList <IWinAccount> winUsers, IFactory factory)
 {
     _winUsers  = winUsers;
     _factory   = factory;
     NewWinUser = CreateNewWinUser();
     CloseAddDialogEventSubscribe();
 }
コード例 #3
0
ファイル: WinHelper.cs プロジェクト: natatory/AsconTest
        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);
        }
コード例 #4
0
 private bool IsExist(IWinAccount winUser)
 {
     return(_winUsers.Any(u => u.Name == winUser.Name));
 }