예제 #1
0
 private static void SaveExportFile(string fileName, ConnectionsSaver.Format saveFormat, SaveFilter saveFilter, ConnectionInfo exportTarget)
 {
     try
     {
         ISerializer<string> serializer;
         switch (saveFormat)
         {
             case ConnectionsSaver.Format.mRXML:
                 var factory = new CryptographyProviderFactory();
                 var cryptographyProvider = factory.CreateAeadCryptographyProvider(mRemoteNG.Settings.Default.EncryptionEngine, mRemoteNG.Settings.Default.EncryptionBlockCipherMode);
                 cryptographyProvider.KeyDerivationIterations = Settings.Default.EncryptionKeyDerivationIterations;
                 serializer = new XmlConnectionsSerializer(cryptographyProvider);
                 ((XmlConnectionsSerializer) serializer).SaveFilter = saveFilter;
                 break;
             case ConnectionsSaver.Format.mRCSV:
                 serializer = new CsvConnectionsSerializerMremotengFormat();
                 ((CsvConnectionsSerializerMremotengFormat)serializer).SaveFilter = saveFilter;
                 break;
             default:
                 throw new ArgumentOutOfRangeException(nameof(saveFormat), saveFormat, null);
         }
         var serializedData = serializer.Serialize(exportTarget);
         var fileDataProvider = new FileDataProvider(fileName);
         fileDataProvider.Save(serializedData);
     }
     catch (Exception ex)
     {
         Runtime.MessageCollector.AddExceptionStackTrace($"Export.SaveExportFile(\"{fileName}\") failed.", ex);
     }
     finally
     {
         Runtime.RemoteConnectionsSyncronizer?.Enable();
     }
 }
 public void InheritanceNotSerialiedWhenFiltered(string attributeName, ConnectionInfo connectionInfo)
 {
     var saveFilter = new SaveFilter(true);
     var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(BlockCipherEngines.AES, BlockCipherModes.GCM);
     _connectionNodeSerializer = new XmlConnectionNodeSerializer(cryptoProvider, "myPassword1".ConvertToSecureString(), saveFilter);
     var returnVal = _connectionNodeSerializer.SerializeConnectionInfo(connectionInfo);
     var targetAttribute = returnVal.Attribute(XName.Get(attributeName));
     Assert.That(targetAttribute?.Value, Is.EqualTo(false.ToString()));
 }
예제 #3
0
        public static void ExportToFile(ConnectionInfo selectedNode, ConnectionTreeModel connectionTreeModel)
        {
            try
            {
                var saveSecurity = new SaveFilter();

                using (var exportForm = new ExportForm())
                {
                    if (selectedNode?.GetTreeNodeType() == TreeNodeType.Container)
                        exportForm.SelectedFolder = selectedNode as ContainerInfo;
                    else if (selectedNode?.GetTreeNodeType() == TreeNodeType.Connection)
                    {
                        if (selectedNode.Parent.GetTreeNodeType() == TreeNodeType.Container)
                            exportForm.SelectedFolder = selectedNode.Parent;
                        exportForm.SelectedConnection = selectedNode;
                    }

                    if (exportForm.ShowDialog(frmMain.Default) != DialogResult.OK)
                        return ;

                    ConnectionInfo exportTarget;
                    switch (exportForm.Scope)
                    {
                        case ExportForm.ExportScope.SelectedFolder:
                            exportTarget = exportForm.SelectedFolder;
                            break;
                        case ExportForm.ExportScope.SelectedConnection:
                            exportTarget = exportForm.SelectedConnection;
                            break;
                        default:
                            exportTarget = connectionTreeModel.RootNodes.First(node => node is RootNodeInfo);
                            break;
                    }

                    saveSecurity.SaveUsername = exportForm.IncludeUsername;
                    saveSecurity.SavePassword = exportForm.IncludePassword;
                    saveSecurity.SaveDomain = exportForm.IncludeDomain;
                    saveSecurity.SaveInheritance = exportForm.IncludeInheritance;

                    SaveExportFile(exportForm.FileName, exportForm.SaveFormat, saveSecurity, exportTarget);
                }

            }
            catch (Exception ex)
            {
                Runtime.MessageCollector.AddExceptionMessage("App.Export.ExportToFile() failed.", ex, logOnly: true);
            }
        }
 public void Teardown()
 {
     _saveFilter = null;
     _dataTableSerializer = null;
 }
 public void Setup()
 {
     _saveFilter = new SaveFilter();
     _dataTableSerializer = new DataTableSerializer(_saveFilter);
 }
 public XmlConnectionNodeSerializer(ICryptographyProvider cryptographyProvider, SecureString encryptionKey, SaveFilter saveFilter)
 {
     _cryptographyProvider = cryptographyProvider;
     _encryptionKey = encryptionKey;
     _saveFilter = saveFilter;
 }