Пример #1
0
        private void SerializeConnectionInfo(ConnectionInfo connectionInfo)
        {
            _currentNodeIndex++;
            var dataRow = _dataTable.NewRow();

            dataRow["ID"]         = DBNull.Value;
            dataRow["Name"]       = connectionInfo.Name;
            dataRow["Type"]       = connectionInfo.GetTreeNodeType().ToString();
            dataRow["ConstantID"] = connectionInfo.ConstantID;
            dataRow["ParentID"]   = connectionInfo.Parent?.ConstantID ?? "";
            dataRow["PositionID"] = _currentNodeIndex;
            dataRow["LastChange"] = MiscTools.DBTimeStampNow();
            dataRow["Expanded"]   =
                false; // TODO: this column can eventually be removed. we now save this property locally
            dataRow["Description"] = connectionInfo.Description;
            dataRow["Icon"]        = connectionInfo.Icon;
            dataRow["Panel"]       = connectionInfo.Panel;
            dataRow["Username"]    = _saveFilter.SaveUsername ? connectionInfo.Username : "";
            dataRow["DomainName"]  = _saveFilter.SaveDomain ? connectionInfo.Domain : "";
            dataRow["Password"]    = _saveFilter.SavePassword
                ? _cryptographyProvider.Encrypt(connectionInfo.Password, _encryptionKey)
                : "";
            dataRow["Hostname"]                 = connectionInfo.Hostname;
            dataRow["Protocol"]                 = connectionInfo.Protocol;
            dataRow["PuttySession"]             = connectionInfo.PuttySession;
            dataRow["Port"]                     = connectionInfo.Port;
            dataRow["ConnectToConsole"]         = connectionInfo.UseConsoleSession;
            dataRow["UseCredSsp"]               = connectionInfo.UseCredSsp;
            dataRow["RenderingEngine"]          = connectionInfo.RenderingEngine;
            dataRow["ICAEncryptionStrength"]    = connectionInfo.ICAEncryptionStrength;
            dataRow["RDPAuthenticationLevel"]   = connectionInfo.RDPAuthenticationLevel;
            dataRow["RDPMinutesToIdleTimeout"]  = connectionInfo.RDPMinutesToIdleTimeout;
            dataRow["RDPAlertIdleTimeout"]      = connectionInfo.RDPAlertIdleTimeout;
            dataRow["LoadBalanceInfo"]          = connectionInfo.LoadBalanceInfo;
            dataRow["Colors"]                   = connectionInfo.Colors;
            dataRow["Resolution"]               = connectionInfo.Resolution;
            dataRow["AutomaticResize"]          = connectionInfo.AutomaticResize;
            dataRow["DisplayWallpaper"]         = connectionInfo.DisplayWallpaper;
            dataRow["DisplayThemes"]            = connectionInfo.DisplayThemes;
            dataRow["EnableFontSmoothing"]      = connectionInfo.EnableFontSmoothing;
            dataRow["EnableDesktopComposition"] = connectionInfo.EnableDesktopComposition;
            dataRow["CacheBitmaps"]             = connectionInfo.CacheBitmaps;
            dataRow["RedirectDiskDrives"]       = connectionInfo.RedirectDiskDrives;
            dataRow["RedirectPorts"]            = connectionInfo.RedirectPorts;
            dataRow["RedirectPrinters"]         = connectionInfo.RedirectPrinters;
            dataRow["RedirectClipboard"]        = connectionInfo.RedirectClipboard;
            dataRow["RedirectSmartCards"]       = connectionInfo.RedirectSmartCards;
            dataRow["RedirectSound"]            = connectionInfo.RedirectSound;
            dataRow["SoundQuality"]             = connectionInfo.SoundQuality;
            dataRow["RedirectAudioCapture"]     = connectionInfo.RedirectAudioCapture;
            dataRow["RedirectKeys"]             = connectionInfo.RedirectKeys;
            dataRow["Connected"]                =
                false; // TODO: this column can eventually be removed. we now save this property locally
            dataRow["PreExtApp"]        = connectionInfo.PreExtApp;
            dataRow["PostExtApp"]       = connectionInfo.PostExtApp;
            dataRow["MacAddress"]       = connectionInfo.MacAddress;
            dataRow["UserField"]        = connectionInfo.UserField;
            dataRow["ExtApp"]           = connectionInfo.ExtApp;
            dataRow["VNCCompression"]   = connectionInfo.VNCCompression;
            dataRow["VNCEncoding"]      = connectionInfo.VNCEncoding;
            dataRow["VNCAuthMode"]      = connectionInfo.VNCAuthMode;
            dataRow["VNCProxyType"]     = connectionInfo.VNCProxyType;
            dataRow["VNCProxyIP"]       = connectionInfo.VNCProxyIP;
            dataRow["VNCProxyPort"]     = connectionInfo.VNCProxyPort;
            dataRow["VNCProxyUsername"] = connectionInfo.VNCProxyUsername;
            dataRow["VNCProxyPassword"] =
                _cryptographyProvider.Encrypt(connectionInfo.VNCProxyPassword, _encryptionKey);
            dataRow["VNCColors"]            = connectionInfo.VNCColors;
            dataRow["VNCSmartSizeMode"]     = connectionInfo.VNCSmartSizeMode;
            dataRow["VNCViewOnly"]          = connectionInfo.VNCViewOnly;
            dataRow["RDGatewayUsageMethod"] = connectionInfo.RDGatewayUsageMethod;
            dataRow["RDGatewayHostname"]    = connectionInfo.RDGatewayHostname;
            dataRow["RDGatewayUseConnectionCredentials"] = connectionInfo.RDGatewayUseConnectionCredentials;
            dataRow["RDGatewayUsername"] = connectionInfo.RDGatewayUsername;
            dataRow["RDGatewayPassword"] = _cryptographyProvider.Encrypt(connectionInfo.RDGatewayPassword, _encryptionKey);
            dataRow["RDGatewayDomain"]   = connectionInfo.RDGatewayDomain;
            if (_saveFilter.SaveInheritance)
            {
                dataRow["InheritCacheBitmaps"]             = connectionInfo.Inheritance.CacheBitmaps;
                dataRow["InheritColors"]                   = connectionInfo.Inheritance.Colors;
                dataRow["InheritDescription"]              = connectionInfo.Inheritance.Description;
                dataRow["InheritDisplayThemes"]            = connectionInfo.Inheritance.DisplayThemes;
                dataRow["InheritDisplayWallpaper"]         = connectionInfo.Inheritance.DisplayWallpaper;
                dataRow["InheritEnableFontSmoothing"]      = connectionInfo.Inheritance.EnableFontSmoothing;
                dataRow["InheritEnableDesktopComposition"] = connectionInfo.Inheritance.EnableDesktopComposition;
                dataRow["InheritDomain"]                   = connectionInfo.Inheritance.Domain;
                dataRow["InheritIcon"]                              = connectionInfo.Inheritance.Icon;
                dataRow["InheritPanel"]                             = connectionInfo.Inheritance.Panel;
                dataRow["InheritPassword"]                          = connectionInfo.Inheritance.Password;
                dataRow["InheritPort"]                              = connectionInfo.Inheritance.Port;
                dataRow["InheritProtocol"]                          = connectionInfo.Inheritance.Protocol;
                dataRow["InheritPuttySession"]                      = connectionInfo.Inheritance.PuttySession;
                dataRow["InheritRedirectDiskDrives"]                = connectionInfo.Inheritance.RedirectDiskDrives;
                dataRow["InheritRedirectKeys"]                      = connectionInfo.Inheritance.RedirectKeys;
                dataRow["InheritRedirectPorts"]                     = connectionInfo.Inheritance.RedirectPorts;
                dataRow["InheritRedirectPrinters"]                  = connectionInfo.Inheritance.RedirectPrinters;
                dataRow["InheritRedirectClipboard"]                 = connectionInfo.Inheritance.RedirectClipboard;
                dataRow["InheritRedirectSmartCards"]                = connectionInfo.Inheritance.RedirectSmartCards;
                dataRow["InheritRedirectSound"]                     = connectionInfo.Inheritance.RedirectSound;
                dataRow["InheritSoundQuality"]                      = connectionInfo.Inheritance.SoundQuality;
                dataRow["InheritRedirectAudioCapture"]              = connectionInfo.Inheritance.RedirectAudioCapture;
                dataRow["InheritResolution"]                        = connectionInfo.Inheritance.Resolution;
                dataRow["InheritAutomaticResize"]                   = connectionInfo.Inheritance.AutomaticResize;
                dataRow["InheritUseConsoleSession"]                 = connectionInfo.Inheritance.UseConsoleSession;
                dataRow["InheritUseCredSsp"]                        = connectionInfo.Inheritance.UseCredSsp;
                dataRow["InheritRenderingEngine"]                   = connectionInfo.Inheritance.RenderingEngine;
                dataRow["InheritUsername"]                          = connectionInfo.Inheritance.Username;
                dataRow["InheritICAEncryptionStrength"]             = connectionInfo.Inheritance.ICAEncryptionStrength;
                dataRow["InheritRDPAuthenticationLevel"]            = connectionInfo.Inheritance.RDPAuthenticationLevel;
                dataRow["InheritRDPMinutesToIdleTimeout"]           = connectionInfo.Inheritance.RDPMinutesToIdleTimeout;
                dataRow["InheritRDPAlertIdleTimeout"]               = connectionInfo.Inheritance.RDPAlertIdleTimeout;
                dataRow["InheritLoadBalanceInfo"]                   = connectionInfo.Inheritance.LoadBalanceInfo;
                dataRow["InheritPreExtApp"]                         = connectionInfo.Inheritance.PreExtApp;
                dataRow["InheritPostExtApp"]                        = connectionInfo.Inheritance.PostExtApp;
                dataRow["InheritMacAddress"]                        = connectionInfo.Inheritance.MacAddress;
                dataRow["InheritUserField"]                         = connectionInfo.Inheritance.UserField;
                dataRow["InheritExtApp"]                            = connectionInfo.Inheritance.ExtApp;
                dataRow["InheritVNCCompression"]                    = connectionInfo.Inheritance.VNCCompression;
                dataRow["InheritVNCEncoding"]                       = connectionInfo.Inheritance.VNCEncoding;
                dataRow["InheritVNCAuthMode"]                       = connectionInfo.Inheritance.VNCAuthMode;
                dataRow["InheritVNCProxyType"]                      = connectionInfo.Inheritance.VNCProxyType;
                dataRow["InheritVNCProxyIP"]                        = connectionInfo.Inheritance.VNCProxyIP;
                dataRow["InheritVNCProxyPort"]                      = connectionInfo.Inheritance.VNCProxyPort;
                dataRow["InheritVNCProxyUsername"]                  = connectionInfo.Inheritance.VNCProxyUsername;
                dataRow["InheritVNCProxyPassword"]                  = connectionInfo.Inheritance.VNCProxyPassword;
                dataRow["InheritVNCColors"]                         = connectionInfo.Inheritance.VNCColors;
                dataRow["InheritVNCSmartSizeMode"]                  = connectionInfo.Inheritance.VNCSmartSizeMode;
                dataRow["InheritVNCViewOnly"]                       = connectionInfo.Inheritance.VNCViewOnly;
                dataRow["InheritRDGatewayUsageMethod"]              = connectionInfo.Inheritance.RDGatewayUsageMethod;
                dataRow["InheritRDGatewayHostname"]                 = connectionInfo.Inheritance.RDGatewayHostname;
                dataRow["InheritRDGatewayUseConnectionCredentials"] =
                    connectionInfo.Inheritance.RDGatewayUseConnectionCredentials;
                dataRow["InheritRDGatewayUsername"] = connectionInfo.Inheritance.RDGatewayUsername;
                dataRow["InheritRDGatewayPassword"] = connectionInfo.Inheritance.RDGatewayPassword;
                dataRow["InheritRDGatewayDomain"]   = connectionInfo.Inheritance.RDGatewayDomain;
            }
            else
            {
                dataRow["InheritCacheBitmaps"]             = false;
                dataRow["InheritColors"]                   = false;
                dataRow["InheritDescription"]              = false;
                dataRow["InheritDisplayThemes"]            = false;
                dataRow["InheritDisplayWallpaper"]         = false;
                dataRow["InheritEnableFontSmoothing"]      = false;
                dataRow["InheritEnableDesktopComposition"] = false;
                dataRow["InheritDomain"]                   = false;
                dataRow["InheritIcon"]                              = false;
                dataRow["InheritPanel"]                             = false;
                dataRow["InheritPassword"]                          = false;
                dataRow["InheritPort"]                              = false;
                dataRow["InheritProtocol"]                          = false;
                dataRow["InheritPuttySession"]                      = false;
                dataRow["InheritRedirectDiskDrives"]                = false;
                dataRow["InheritRedirectKeys"]                      = false;
                dataRow["InheritRedirectPorts"]                     = false;
                dataRow["InheritRedirectPrinters"]                  = false;
                dataRow["InheritRedirectClipboard"]                 = false;
                dataRow["InheritRedirectSmartCards"]                = false;
                dataRow["InheritRedirectSound"]                     = false;
                dataRow["InheritSoundQuality"]                      = false;
                dataRow["InheritRedirectAudioCapture"]              = false;
                dataRow["InheritResolution"]                        = false;
                dataRow["InheritAutomaticResize"]                   = false;
                dataRow["InheritUseConsoleSession"]                 = false;
                dataRow["InheritUseCredSsp"]                        = false;
                dataRow["InheritRenderingEngine"]                   = false;
                dataRow["InheritUsername"]                          = false;
                dataRow["InheritICAEncryptionStrength"]             = false;
                dataRow["InheritRDPAuthenticationLevel"]            = false;
                dataRow["InheritRDPMinutesToIdleTimeout"]           = false;
                dataRow["InheritRDPAlertIdleTimeout"]               = false;
                dataRow["InheritLoadBalanceInfo"]                   = false;
                dataRow["InheritPreExtApp"]                         = false;
                dataRow["InheritPostExtApp"]                        = false;
                dataRow["InheritMacAddress"]                        = false;
                dataRow["InheritUserField"]                         = false;
                dataRow["InheritExtApp"]                            = false;
                dataRow["InheritVNCCompression"]                    = false;
                dataRow["InheritVNCEncoding"]                       = false;
                dataRow["InheritVNCAuthMode"]                       = false;
                dataRow["InheritVNCProxyType"]                      = false;
                dataRow["InheritVNCProxyIP"]                        = false;
                dataRow["InheritVNCProxyPort"]                      = false;
                dataRow["InheritVNCProxyUsername"]                  = false;
                dataRow["InheritVNCProxyPassword"]                  = false;
                dataRow["InheritVNCColors"]                         = false;
                dataRow["InheritVNCSmartSizeMode"]                  = false;
                dataRow["InheritVNCViewOnly"]                       = false;
                dataRow["InheritRDGatewayUsageMethod"]              = false;
                dataRow["InheritRDGatewayHostname"]                 = false;
                dataRow["InheritRDGatewayUseConnectionCredentials"] = false;
                dataRow["InheritRDGatewayUsername"]                 = false;
                dataRow["InheritRDGatewayPassword"]                 = false;
                dataRow["InheritRDGatewayDomain"]                   = false;
            }

            _dataTable.Rows.Add(dataRow);
        }