protected void Page_Load(object sender, EventArgs e) { WriteScriptBlock(); if (!IsPostBack) { RdsCollection collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID); RdsCollectionSettings settings = ES.Services.RDS.GetRdsCollectionSettings(PanelRequest.CollectionID); collection.Settings = settings; if (collection.Settings == null) { collection.Settings = new RdsCollectionSettings { DisconnectedSessionLimitMin = 0, ActiveSessionLimitMin = 0, IdleSessionLimitMin = 0, BrokenConnectionAction = BrokenConnectionActionValues.Disconnect.ToString(), AutomaticReconnectionEnabled = true, TemporaryFoldersDeletedOnExit = true, TemporaryFoldersPerSession = true, ClientDeviceRedirectionOptions = string.Join(",", new List <string> { ClientDeviceRedirectionOptionValues.AudioVideoPlayBack.ToString(), ClientDeviceRedirectionOptionValues.AudioRecording.ToString(), ClientDeviceRedirectionOptionValues.SmartCard.ToString(), ClientDeviceRedirectionOptionValues.Clipboard.ToString(), ClientDeviceRedirectionOptionValues.Drive.ToString(), ClientDeviceRedirectionOptionValues.PlugAndPlayDevice.ToString() }.ToArray()), ClientPrinterRedirected = true, ClientPrinterAsDefault = true, RDEasyPrintDriverEnabled = true, MaxRedirectedMonitors = 16, EncryptionLevel = EncryptionLevel.ClientCompatible.ToString(), SecurityLayer = SecurityLayerValues.Negotiate.ToString(), AuthenticateUsingNLA = true }; } litCollectionName.Text = collection.DisplayName; BindControls(collection); } }
public static RdsCollectionSettings ParseCollectionSettings(List <RdsCollectionSetting> settings) { var collectionSettings = new RdsCollectionSettings(); var properties = typeof(RdsCollectionSettings).GetProperties().Where(p => p.Name.ToLower() != "id" && p.Name.ToLower() != "rdscollectionid"); foreach (var prop in properties) { var values = settings.Where(s => s.PropertyName.Equals(prop.Name, StringComparison.InvariantCultureIgnoreCase)); if (values.Count() == 1) { switch (prop.Name.ToLower()) { case "brokenconnectionaction": prop.SetValue(collectionSettings, ((BrokenConnectionActionValues)values.First().PropertyValue).ToString(), null); break; case "clientdeviceredirectionoptions": prop.SetValue(collectionSettings, ((ClientDeviceRedirectionOptionValues)values.First().PropertyValue).ToString(), null); break; case "encryptionlevel": prop.SetValue(collectionSettings, ((EncryptionLevel)values.First().PropertyValue).ToString(), null); break; case "securitylayer": prop.SetValue(collectionSettings, ((SecurityLayerValues)values.First().PropertyValue).ToString(), null); break; default: prop.SetValue(collectionSettings, Convert.ChangeType(values.First().PropertyValue, prop.PropertyType), null); break; } } } return(collectionSettings); }
private RdsCollectionSettings GetSettings(RdsCollectionSettings settings) { settings.DisconnectedSessionLimitMin = slDisconnectedSessionLimit.SelectedLimit; settings.ActiveSessionLimitMin = slActiveSessionLimit.SelectedLimit; settings.IdleSessionLimitMin = slIdleSessionLimit.SelectedLimit; settings.AutomaticReconnectionEnabled = chAutomaticReconnection.Checked; if (chDisconnect.Checked) { settings.BrokenConnectionAction = BrokenConnectionActionValues.Disconnect.ToString(); } else { settings.BrokenConnectionAction = BrokenConnectionActionValues.LogOff.ToString(); } settings.TemporaryFoldersDeletedOnExit = chDeleteOnExit.Checked; settings.TemporaryFoldersPerSession = chUseFolders.Checked; settings.ClientPrinterRedirected = chPrinterRedirection.Checked; settings.ClientPrinterAsDefault = chDefaultDevice.Checked; settings.RDEasyPrintDriverEnabled = chEasyPrint.Checked; settings.MaxRedirectedMonitors = Convert.ToInt32(tbMonitorsNumber.Text); List <string> redirectionOptions = new List <string>(); if (chAudioVideo.Checked) { redirectionOptions.Add(ClientDeviceRedirectionOptionValues.AudioVideoPlayBack.ToString()); } if (chAudioRecording.Checked) { redirectionOptions.Add(ClientDeviceRedirectionOptionValues.AudioRecording.ToString()); } if (chSmartCards.Checked) { redirectionOptions.Add(ClientDeviceRedirectionOptionValues.SmartCard.ToString()); } if (chPlugPlay.Checked) { redirectionOptions.Add(ClientDeviceRedirectionOptionValues.PlugAndPlayDevice.ToString()); } if (chDrives.Checked) { redirectionOptions.Add(ClientDeviceRedirectionOptionValues.Drive.ToString()); } if (chClipboard.Checked) { redirectionOptions.Add(ClientDeviceRedirectionOptionValues.Clipboard.ToString()); } settings.ClientDeviceRedirectionOptions = string.Join(",", redirectionOptions.ToArray()); settings.AuthenticateUsingNLA = cbAuthentication.Checked; settings.SecurityLayer = ddSecurityLayer.SelectedItem.Value; settings.EncryptionLevel = ddEncryptionLevel.SelectedItem.Value; return(settings); }