private async void DecryptAndLoadAction() { CustomDialog customDialog = new CustomDialog() { Title = Application.Current.Resources["String_Header_MasterPassword"] as string }; CredentialsMasterPasswordViewModel credentialsMasterPasswordViewModel = new CredentialsMasterPasswordViewModel(async instance => { await dialogCoordinator.HideMetroDialogAsync(this, customDialog); if (!CredentialManager.Load(instance.Password)) { await dialogCoordinator.ShowMessageAsync(this, Application.Current.Resources["String_Header_WrongPassword"] as string, Application.Current.Resources["String_WrongPasswordDecryptionFailed"] as string, MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); } CheckCredentialsLoaded(); TimerLockUIStart(); }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); }); customDialog.Content = new CredentialsMasterPasswordDialog { DataContext = credentialsMasterPasswordViewModel }; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); }
private async void LockUnlockAction() { if (Locked) { CustomDialog customDialogMasterPassword = new CustomDialog() { Title = Application.Current.Resources["String_Header_MasterPassword"] as string }; CredentialsMasterPasswordViewModel credentialsMasterPasswordViewModel = new CredentialsMasterPasswordViewModel(async instance => { await dialogCoordinator.HideMetroDialogAsync(this, customDialogMasterPassword); if (CredentialManager.VerifyMasterPasword(instance.Password)) { TimerLockUIStart(); } else { await dialogCoordinator.ShowMessageAsync(this, Application.Current.Resources["String_Header_WrongPassword"] as string, Application.Current.Resources["String_WrongPassword"] as string, MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); } }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialogMasterPassword); }); customDialogMasterPassword.Content = new CredentialsMasterPasswordDialog { DataContext = credentialsMasterPasswordViewModel }; await dialogCoordinator.ShowMetroDialogAsync(this, customDialogMasterPassword); } else { TimerLockUIStop(); } }
private async void ConnectSessionAction() { Models.RemoteDesktop.RemoteDesktopSessionInfo sessionInfo = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = SelectedSession.Host }; if (SelectedSession.CredentialID != null) // Credentials need to be unlocked first { if (!CredentialManager.Loaded) { CustomDialog customDialog = new CustomDialog() { Title = Application.Current.Resources["String_Header_MasterPassword"] as string }; CredentialsMasterPasswordViewModel credentialsMasterPasswordViewModel = new CredentialsMasterPasswordViewModel(async instance => { await dialogCoordinator.HideMetroDialogAsync(this, customDialog); if (CredentialManager.Load(instance.Password)) { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID((int)SelectedSession.CredentialID); if (credentialInfo == null) { await dialogCoordinator.ShowMessageAsync(this, Application.Current.Resources["String_Header_CredentialNotFound"] as string, Application.Current.Resources["String_CredentialNotFoundMessage"] as string, MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); return; } sessionInfo.CustomCredentials = true; sessionInfo.Username = credentialInfo.Username; sessionInfo.Password = credentialInfo.Password; ConnectSession(sessionInfo, SelectedSession.Name); } else { await dialogCoordinator.ShowMessageAsync(this, Application.Current.Resources["String_Header_WrongPassword"] as string, Application.Current.Resources["String_WrongPasswordDecryptionFailed"] as string, MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); } }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); }); customDialog.Content = new CredentialsMasterPasswordDialog { DataContext = credentialsMasterPasswordViewModel }; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); } else // Connect already unlocked { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID((int)SelectedSession.CredentialID); if (credentialInfo == null) { await dialogCoordinator.ShowMessageAsync(this, Application.Current.Resources["String_Header_CredentialNotFound"] as string, Application.Current.Resources["String_CredentialNotFoundMessage"] as string, MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); return; } sessionInfo.CustomCredentials = true; sessionInfo.Username = credentialInfo.Username; sessionInfo.Password = credentialInfo.Password; ConnectSession(sessionInfo, SelectedSession.Name); } } else // Connect without credentials { ConnectSession(sessionInfo, SelectedSession.Name); } }