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"); } }
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"); } }
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; } } }