private async void Login() { _loginCounter++; bool success = false; string error = ""; string pwd = passwordBoxLogin.Password; progressBarLoading.IsIndeterminate = true; await Task.Run(() => { var login = _ioSecurity.Login(pwd); if (login.Success) { success = true; } else { error = login.ErrorMessage; } }); progressBarLoading.IsIndeterminate = false; if (!success) { await this.ShowMessageAsync(LanguageChanger.Instance["StartupView_CodeBehind_Error"], error); loginStatus.Text = $"({_loginCounter}/5)"; } else { MainWindow root = new MainWindow(); root.Show(); this.Close(); } }
private void ChangePassword(Action action) { PasswordMasker masker = new PasswordMasker(); string key = ""; do { key = masker.Mask("Set password (length>5): "); if (String.IsNullOrEmpty(key) || key.Length <= 5) { Write("Password length must be greater than 5 chars!"); ReadLine(); Clear(); } else if (File.Exists(Global.MasterKeyLocation) && _iOSecurity.Login(key).Success) { Write("You cannot input the same password!"); ReadLine(); Clear(); } else { break; } } while (true); WriteLine("Loading..."); MainResult result = _iOSecurity.ChangeMasterKey(key); if (result.Success) { WriteLine("Password changed successfully"); } else { WriteLine($"Error: `{result.ErrorMessage}`"); } action(); }
private async void UpdatePassword() { IOSecurity iOSecurity = new IOSecurity(); //because we use non-UI thread to update password, //we must copy both passwords in variables. string oldPwd = passwordBoxCurrentPassword.Password; string newPwd = passwordBoxNewPassword.Password; string message = ""; string title = ""; progressBarLoading.IsIndeterminate = true; await Task.Run(() => { MainResult loginResult = iOSecurity.Login(oldPwd); if (loginResult.Success) { MainResult changePasswordResult = iOSecurity.ChangeMasterKey(newPwd); if (changePasswordResult.Success) { title = LanguageChanger.Instance["SettingsView_CodeBehind_Success"]; message = LanguageChanger.Instance["SettingsView_CodeBehind_Code7"]; } else { title = LanguageChanger.Instance["SettingsView_CodeBehind_Error"]; message = changePasswordResult.ErrorMessage; } } else { title = LanguageChanger.Instance["SettingsView_CodeBehind_Error"]; message = LanguageChanger.Instance["SettingsView_CodeBehind_Code8"]; } }); progressBarLoading.IsIndeterminate = false; await this.ShowMessageAsync(title, message); passwordBoxCurrentPassword.Password = passwordBoxNewPassword.Password = string.Empty; }