hMailServer.Administrator.Utilities.APICreator.Authenticate C# (CSharp) Method

Authenticate() public static method

public static Authenticate ( hMailServer app, Settings server ) : bool
app hMailServer
server Settings
return bool
        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;
            }

             }
        }