private void ConnectSession(Models.RemoteDesktop.RemoteDesktopSessionInfo sessionInfo, string Header = null) { // Add global settings... sessionInfo.AdjustScreenAutomatically = SettingsManager.Current.RemoteDesktop_AdjustScreenAutomatically; sessionInfo.UseCurrentViewSize = SettingsManager.Current.RemoteDesktop_UseCurrentViewSize; if (SettingsManager.Current.RemoteDesktop_UseCustomScreenSize) { sessionInfo.DesktopWidth = SettingsManager.Current.RemoteDesktop_CustomScreenWidth; sessionInfo.DesktopHeight = SettingsManager.Current.RemoteDesktop_CustomScreenHeight; } else { sessionInfo.DesktopWidth = SettingsManager.Current.RemoteDesktop_ScreenWidth; sessionInfo.DesktopHeight = SettingsManager.Current.RemoteDesktop_ScreenHeight; } sessionInfo.ColorDepth = SettingsManager.Current.RemoteDesktop_ColorDepth; sessionInfo.Port = SettingsManager.Current.RemoteDesktop_Port; sessionInfo.EnableCredSspSupport = SettingsManager.Current.RemoteDesktop_EnableCredSspSupport; sessionInfo.AuthenticationLevel = SettingsManager.Current.RemoteDesktop_AuthenticationLevel; sessionInfo.RedirectClipboard = SettingsManager.Current.RemoteDesktop_RedirectClipboard; sessionInfo.RedirectDevices = SettingsManager.Current.RemoteDesktop_RedirectDevices; sessionInfo.RedirectDrives = SettingsManager.Current.RemoteDesktop_RedirectDrives; sessionInfo.RedirectPorts = SettingsManager.Current.RemoteDesktop_RedirectPorts; sessionInfo.RedirectSmartCards = SettingsManager.Current.RemoteDesktop_RedirectSmartCards; TabItems.Add(new DragablzRemoteDesktopTabItem(Header ?? sessionInfo.Hostname, new RemoteDesktopControl(sessionInfo))); SelectedTabIndex = TabItems.Count - 1; }
private async void ConnectRemoteDesktopSessionAction() { CustomDialog customDialog = new CustomDialog() { Title = Application.Current.Resources["String_Header_Connect"] as string }; RemoteDesktopSessionConnectViewModel connectRemoteDesktopSessionViewModel = new RemoteDesktopSessionConnectViewModel(instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; Models.RemoteDesktop.RemoteDesktopSessionInfo remoteDesktopSessionInfo = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = instance.Hostname, }; ConnectSession(remoteDesktopSessionInfo); }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; }); customDialog.Content = new RemoteDesktopSessionConnectDialog { DataContext = connectRemoteDesktopSessionViewModel }; ConfigurationManager.Current.FixAirspace = true; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); }
private async void ConnectSessionAsAction() { CustomDialog customDialog = new CustomDialog() { Title = Application.Current.Resources["String_Header_ConnectAs"] as string }; RemoteDesktopSessionConnectViewModel connectRemoteDesktopSessionViewModel = new RemoteDesktopSessionConnectViewModel(instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; Models.RemoteDesktop.RemoteDesktopSessionInfo remoteDesktopSessionInfo = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = instance.Host }; if (instance.UseCredentials) { remoteDesktopSessionInfo.CustomCredentials = true; if (instance.CustomCredentials) { remoteDesktopSessionInfo.Username = instance.Username; remoteDesktopSessionInfo.Password = instance.Password; } else { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID((int)instance.CredentialID); remoteDesktopSessionInfo.Username = credentialInfo.Username; remoteDesktopSessionInfo.Password = credentialInfo.Password; } } ConnectSession(remoteDesktopSessionInfo, instance.Name); }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; }, true) { // Set name, hostname Name = SelectedSession.Name, Host = SelectedSession.Host, // Request credentials UseCredentials = true }; customDialog.Content = new RemoteDesktopSessionConnectDialog { DataContext = connectRemoteDesktopSessionViewModel }; ConfigurationManager.Current.FixAirspace = true; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); }
private async void ConnectProfileAs() { CustomDialog customDialog = new CustomDialog() { Title = LocalizationManager.GetStringByKey("String_Header_ConnectAs") }; RemoteDesktopConnectViewModel remoteDesktopConnectViewModel = new RemoteDesktopConnectViewModel(instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.IsDialogOpen = false; Models.RemoteDesktop.RemoteDesktopSessionInfo session = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = instance.Host }; if (instance.UseCredentials) { session.CustomCredentials = true; if (instance.CustomCredentials) { session.Username = instance.Username; session.Password = instance.Password; } else { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID((int)instance.CredentialID); session.Username = credentialInfo.Username; session.Password = credentialInfo.Password; } } Connect(session, instance.Name); }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.IsDialogOpen = false; }, true) { // Set name, hostname Name = SelectedProfile.Name, Host = SelectedProfile.RemoteDesktop_Host, // Request credentials UseCredentials = true }; customDialog.Content = new RemoteDesktopConnectDialog { DataContext = remoteDesktopConnectViewModel }; ConfigurationManager.Current.IsDialogOpen = true; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); }
private void ConnectSessionAction() { Models.RemoteDesktop.RemoteDesktopSessionInfo remoteDesktopSessionInfo = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = SelectedSession.Hostname }; ConnectSession(remoteDesktopSessionInfo, SelectedSession.Name); }
private async void ConnectNewSession(string host = null) { CustomDialog customDialog = new CustomDialog() { Title = LocalizationManager.GetStringByKey("String_Header_Connect") }; RemoteDesktopSessionConnectViewModel remoteDesktopSessionConnectViewModel = new RemoteDesktopSessionConnectViewModel(instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; // Add host to history AddHostToHistory(instance.Host); // Create new remote desktop session info Models.RemoteDesktop.RemoteDesktopSessionInfo remoteDesktopSessionInfo = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = instance.Host }; if (instance.UseCredentials) { remoteDesktopSessionInfo.CustomCredentials = true; if (instance.CustomCredentials) { remoteDesktopSessionInfo.Username = instance.Username; remoteDesktopSessionInfo.Password = instance.Password; } else { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID((int)instance.CredentialID); remoteDesktopSessionInfo.Username = credentialInfo.Username; remoteDesktopSessionInfo.Password = credentialInfo.Password; } } Connect(remoteDesktopSessionInfo); }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; }) { Host = host }; customDialog.Content = new RemoteDesktopSessionConnectDialog { DataContext = remoteDesktopSessionConnectViewModel }; ConfigurationManager.Current.FixAirspace = true; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); }
public RemoteDesktopControl(Models.RemoteDesktop.RemoteDesktopSessionInfo info) { InitializeComponent(); DataContext = this; _rdpSessionInfo = info; reconnectAdjustScreenTimer.Tick += ReconnectAdjustScreenTimer_Tick; reconnectAdjustScreenTimer.Interval = new TimeSpan(0, 0, 0, 0, 500); Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted; }
private void ConnectSession(Models.RemoteDesktop.RemoteDesktopSessionInfo sessionInfo, string Header = null) { // Add global settings... sessionInfo.DesktopWidth = SettingsManager.Current.RemoteDesktop_DesktopWidth; sessionInfo.DesktopHeight = SettingsManager.Current.RemoteDesktop_DesktopHeight; sessionInfo.ColorDepth = SettingsManager.Current.RemoteDesktop_ColorDepth; sessionInfo.RedirectClipboard = SettingsManager.Current.RemoteDesktop_RedirectClipboard; sessionInfo.RedirectDevices = SettingsManager.Current.RemoteDesktop_RedirectDevices; sessionInfo.RedirectDrives = SettingsManager.Current.RemoteDesktop_RedirectDrives; sessionInfo.RedirectPorts = SettingsManager.Current.RemoteDesktop_RedirectPorts; sessionInfo.RedirectSmartCards = SettingsManager.Current.RemoteDesktop_RedirectSmartCards; TabContents.Add(new DragablzTabContent(Header ?? sessionInfo.Hostname, new RemoteDesktopControl(sessionInfo))); SelectedTabIndex = TabContents.Count - 1; }
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); } }
private async void ConnectProfile() { Models.RemoteDesktop.RemoteDesktopSessionInfo session = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = SelectedProfile.RemoteDesktop_Host }; if (SelectedProfile.CredentialID > -1) // Credentials need to be unlocked first { if (!CredentialManager.Loaded) { CustomDialog customDialog = new CustomDialog() { Title = LocalizationManager.GetStringByKey("String_Header_MasterPassword") }; CredentialsMasterPasswordViewModel credentialsMasterPasswordViewModel = new CredentialsMasterPasswordViewModel(async instance => { await dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.IsDialogOpen = false; if (CredentialManager.Load(instance.Password)) { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID(SelectedProfile.CredentialID); if (credentialInfo == null) { ConfigurationManager.Current.IsDialogOpen = true; await dialogCoordinator.ShowMessageAsync(this, LocalizationManager.GetStringByKey("String_Header_CredentialNotFound"), LocalizationManager.GetStringByKey("String_CredentialNotFoundMessage"), MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); ConfigurationManager.Current.IsDialogOpen = false; return; } session.CustomCredentials = true; session.Username = credentialInfo.Username; session.Password = credentialInfo.Password; Connect(session, SelectedProfile.Name); } else { ConfigurationManager.Current.IsDialogOpen = true; await dialogCoordinator.ShowMessageAsync(this, LocalizationManager.GetStringByKey("String_Header_WrongPassword"), LocalizationManager.GetStringByKey("String_WrongPasswordDecryptionFailed"), MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); ConfigurationManager.Current.IsDialogOpen = false; } }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.IsDialogOpen = false; }); customDialog.Content = new CredentialsMasterPasswordDialog { DataContext = credentialsMasterPasswordViewModel }; ConfigurationManager.Current.IsDialogOpen = true; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); } else // Connect already unlocked { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID(SelectedProfile.CredentialID); if (credentialInfo == null) { ConfigurationManager.Current.IsDialogOpen = true; await dialogCoordinator.ShowMessageAsync(this, LocalizationManager.GetStringByKey("String_Header_CredentialNotFound"), LocalizationManager.GetStringByKey("String_CredentialNotFoundMessage"), MessageDialogStyle.Affirmative, AppearanceManager.MetroDialog); ConfigurationManager.Current.IsDialogOpen = false; return; } session.CustomCredentials = true; session.Username = credentialInfo.Username; session.Password = credentialInfo.Password; Connect(session, SelectedProfile.Name); } } else // Connect without credentials { Connect(session, SelectedProfile.Name); } }