public static bool AuthenticateUser(hMailServer.Application application)
        {
            // First try to authenticate using an empty password.
             if (AuthenticateUser(application, ""))
            return true;

             // Try to authenticate using password on command line...
             string [] args = Environment.GetCommandLineArgs();
             foreach (string password in args)
             {
            if (AuthenticateUser(application, password))
               return true;
             }

             while (true)
             {
            formEnterPassword passwordDlg = new formEnterPassword();

            if (passwordDlg.ShowDialog() != System.Windows.Forms.DialogResult.OK)
               return false;

            string password = passwordDlg.Password;

            if (AuthenticateUser(application, password))
               return true;

            MessageBox.Show("Invalid user name or password.", "hMailServer");
             }
        }
Exemple #2
0
        public static bool AuthenticateUser(hMailServer.Application application)
        {
            // First try to authenticate using an empty password.
            if (AuthenticateUser(application, ""))
            {
                return(true);
            }

            // Try to authenticate using password on command line...
            string [] args = Environment.GetCommandLineArgs();
            foreach (string password in args)
            {
                if (AuthenticateUser(application, password))
                {
                    return(true);
                }
            }

            while (true)
            {
                formEnterPassword passwordDlg = new formEnterPassword();

                if (passwordDlg.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return(false);
                }

                string password = passwordDlg.Password;

                if (AuthenticateUser(application, password))
                {
                    return(true);
                }

                MessageBox.Show("Invalid user name or password.", "hMailServer");
            }
        }
Exemple #3
0
        public static bool Authenticate(hMailServer.Application app, Settings.Server server)
        {
            string password = server.encryptedPassword;

             if (password.Length > 0)
             {
            password = Encryption.Decrypt(password);
             }

             bool wrongPassword = false;

             while (true)
             {
            if (!server.savePassword || wrongPassword)
            {
               // The user must input the password.
               formEnterPassword dlg = new formEnterPassword();
               if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
                  return false;

               password = dlg.Password;
            }

            try
            {
               hMailServer.Account account = app.Authenticate(server.userName, password);

               if (account == null)
               {
                  // Wrong password, try again.
                  MessageBox.Show("The specified user name or password is incorrect.", EnumStrings.hMailServerAdministrator, MessageBoxButtons.OK);

                  wrongPassword = true;
               }
               else
               {
                   try
                   {
                       if (account.AdminLevel != eAdminLevel.hAdminLevelServerAdmin)
                       {
                           // Wrong password, try again.
                           MessageBox.Show("hMailServer server administration rights are required to run hMailServer Administrator.", EnumStrings.hMailServerAdministrator, MessageBoxButtons.OK, MessageBoxIcon.Warning);

                           return false;
                       }
                       return true;
                   }
                   finally
                   {
                       Marshal.ReleaseComObject(account);
                   }
               }

            }
            catch (Exception e)
            {
               // Wrong password, try again.
               MessageBox.Show("The specified user name or password is incorrect." + Environment.NewLine + e.Message, EnumStrings.hMailServerAdministrator, MessageBoxButtons.OK);

               wrongPassword = true;
            }

             }
        }