Ejemplo n.º 1
0
        private void mainTabControl_SelectedIndexChanged(object sender, EventArgs e)
        {
            int currentTabIndex = (sender as TabControl).SelectedIndex;

            switch (currentTabIndex)
            {//Based on current tab, do action
            case 0:
                if (!String.IsNullOrWhiteSpace(AppSession.UserName))
                {
                    adUsernameBox.Text = AppSession.UserName;
                }
                if (!String.IsNullOrWhiteSpace(AppSession.Password))
                {
                    adPasswordBox.Text = AppSession.Password;
                }
                if (!String.IsNullOrWhiteSpace(AppSession.Domain))
                {
                    adDomainBox.Text = AppSession.Domain;
                }
                break;

            case 1:

                if (!String.IsNullOrEmpty(AppSession.UserName))
                {
                    usernameTextBox.Text = AppSession.UserName;
                }
                if (!String.IsNullOrEmpty(AppSession.Password))
                {
                    passwordTextBox.Text = AppSession.Password;
                }
                if (!String.IsNullOrEmpty(AppSession.Domain))
                {
                    domainTextBox.Text = AppSession.Domain;
                }
                if (!String.IsNullOrEmpty(AppSession.ServerIP))
                {
                    ipTextBox.Text = AppSession.ServerIP;
                }
                break;

            case 2:
                passwordsGridView.Rows.Clear();
                passwordsGridView.Refresh();

                RemoteUserTableHandler rUserHandler = new RemoteUserTableHandler();
                List <RemoteUser>      rUsers       = rUserHandler.getAllRemoteUsers();
                foreach (RemoteUser rUser in rUsers)
                {
                    passwordsGridView.Rows.Add(rUser.getSystemName(), rUser.getUsername(), rUser.getPassword(), rUser.getModifiedDateStr(), rUser.getStatus());
                }
                break;
            }
        }
Ejemplo n.º 2
0
        private void passwordWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            // Password changing function that runs in background without disrupting the GUI
            int checkedCount        = computersCheckBox.CheckedItems.Count;
            int percentageInc       = (100 / computersCheckBox.CheckedItems.Count);
            int percentageCompleted = 0;

            bool allAdmins = allAdminsRadio.Checked;

            RemoteUserTableHandler rUserHandler = new RemoteUserTableHandler();

            for (int i = 0; i < checkedCount; i++)
            {
                List <String> userAccounts = new List <String>();

                String target = (String)computersCheckBox.CheckedItems[i];
                if (allAdmins)
                {
                    userAccounts = Utils.getRemoteAdmins(target);
                }
                else
                {
                    userAccounts.Add("Administrator");
                }

                foreach (String username in userAccounts)
                {
                    String          newPassword = this.passwordGenerate();
                    PasswordChanger rc          = new PasswordChanger(target);
                    RemoteUser      rUser       = new RemoteUser();
                    rUser.setSystemName(target);
                    rUser.setUsername(username);

                    if (rc.change(username, newPassword))
                    {//Successfully changed the password
                        rUser.setPassword(newPassword);
                        if (rUserHandler.exists(rUser))
                        {
                            rUserHandler.updatePassword(rUser);
                        }
                        else
                        {
                            rUserHandler.addUser(rUser);
                        }
                    }
                    else
                    {//Fails to chang the password
                        rUser.setStatus(rc.getError());
                        if (rUserHandler.exists(rUser))
                        {
                            rUserHandler.updateStatus(rUser);
                        }
                        else
                        {
                            rUserHandler.addUser(rUser);
                        }
                    }
                }

                percentageCompleted = ((i + 1) * percentageInc);
                passwordWorker.ReportProgress(percentageCompleted);

                if (passwordWorker.CancellationPending)
                {
                    e.Cancel = true;
                    passwordWorker.ReportProgress(0);
                    return;
                }

                Thread.Sleep(100);
            }

            passwordWorker.ReportProgress(100);
        }