created credential saver and loader classes

This commit is contained in:
David Sparer
2017-01-20 10:10:59 -07:00
parent a381827890
commit 3998be3f93
3 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Security;
using mRemoteNG.Config.DataProviders;
using mRemoteNG.Config.Serializers;
using mRemoteNG.Credential;
namespace mRemoteNG.Config
{
public class CredentialRecordLoader
{
private readonly IDataProvider<string> _dataProvider;
private readonly XmlCredentialDeserializer _deserializer;
public CredentialRecordLoader(IDataProvider<string> dataProvider, XmlCredentialDeserializer deserializer)
{
if (dataProvider == null)
throw new ArgumentNullException(nameof(dataProvider));
if (deserializer == null)
throw new ArgumentNullException(nameof(deserializer));
_dataProvider = dataProvider;
_deserializer = deserializer;
}
public IEnumerable<ICredentialRecord> Load(SecureString decryptionKey)
{
var serializedCredentials = _dataProvider.Load();
return _deserializer.Deserialize(serializedCredentials, decryptionKey);
}
}
}

View File

@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Security;
using mRemoteNG.Config.DataProviders;
using mRemoteNG.Config.Serializers;
using mRemoteNG.Credential;
namespace mRemoteNG.Config
{
public class CredentialRecordSaver
{
private readonly IDataProvider<string> _dataProvider;
private readonly XmlCredentialRecordSerializer _serializer;
public CredentialRecordSaver(IDataProvider<string> dataProvider, XmlCredentialRecordSerializer serializer)
{
if (dataProvider == null)
throw new ArgumentNullException(nameof(dataProvider));
if (serializer == null)
throw new ArgumentNullException(nameof(serializer));
_dataProvider = dataProvider;
_serializer = serializer;
}
public void Save(IEnumerable<ICredentialRecord> credentialRecords, SecureString encryptionKey)
{
var serializedCredentials = _serializer.Serialize(credentialRecords, encryptionKey);
_dataProvider.Save(serializedCredentials);
}
}
}

View File

@@ -133,6 +133,8 @@
<Compile Include="Config\Connections\Multiuser\IConnectionsUpdateChecker.cs" />
<Compile Include="Config\Connections\Multiuser\ConnectionsUpdateAvailableEventArgs.cs" />
<Compile Include="Config\Connections\Multiuser\RemoteConnectionsSyncronizer.cs" />
<Compile Include="Config\CredentialRecordLoader.cs" />
<Compile Include="Config\CredentialRecordSaver.cs" />
<Compile Include="Config\Serializers\ActiveDirectoryDeserializer.cs" />
<Compile Include="Config\Serializers\CredentialProviderSerializer\CredentialProviderSerializer.cs" />
<Compile Include="Config\Serializers\CsvConnectionsSerializerMremotengFormat.cs" />