diff --git a/mRemoteV1/Credential/ICredentialRecord.cs b/mRemoteV1/Credential/ICredentialRecord.cs
index fa62b6011..ec0a3c1be 100644
--- a/mRemoteV1/Credential/ICredentialRecord.cs
+++ b/mRemoteV1/Credential/ICredentialRecord.cs
@@ -2,16 +2,37 @@
using System.ComponentModel;
using System.Security;
-
namespace mRemoteNG.Credential
{
+ ///
+ /// Represents a named set of username/domain/password information.
+ ///
[TypeConverter(typeof(CredentialRecordTypeConverter))]
public interface ICredentialRecord : INotifyPropertyChanged
{
+ ///
+ /// An Id which uniquely identifies this credential record.
+ ///
Guid Id { get; }
+
+ ///
+ /// A friendly name for this credential record.
+ ///
string Title { get; set; }
+
+ ///
+ /// The username portion of the credential.
+ ///
string Username { get; set; }
- SecureString Password { get; set; }
+
+ ///
+ /// The domain portion of the credential.
+ ///
string Domain { get; set; }
+
+ ///
+ /// The password
+ ///
+ SecureString Password { get; set; }
}
}
\ No newline at end of file
diff --git a/mRemoteV1/Credential/ICredentialRepository.cs b/mRemoteV1/Credential/ICredentialRepository.cs
index 84ea87f1c..b900efd6e 100644
--- a/mRemoteV1/Credential/ICredentialRepository.cs
+++ b/mRemoteV1/Credential/ICredentialRepository.cs
@@ -9,14 +9,52 @@ namespace mRemoteNG.Credential
{
public interface ICredentialRepository
{
+ ///
+ /// The configuration information for this credential repository.
+ ///
ICredentialRepositoryConfig Config { get; }
+
+ ///
+ /// A list of the s provided by this repository.
+ ///
IList CredentialRecords { get; }
+
+ ///
+ /// A friendly name for this repository.
+ ///
string Title { get; }
+
+ ///
+ /// Whether or not this repository has been unlocked and is able to provide
+ /// credentials.
+ ///
bool IsLoaded { get; }
+
+ ///
+ /// Unlock the repository with the given key and load all available credentials.
+ ///
+ ///
void LoadCredentials(SecureString key);
+
+ ///
+ /// Save all credentials provided by this repository.
+ ///
+ ///
void SaveCredentials(SecureString key);
+
+ ///
+ /// Lock and unload all credentials provided by this repository.
+ ///
void UnloadCredentials();
+
+ ///
+ /// This event is raised when any changes are made to the assigned .
+ ///
event EventHandler RepositoryConfigUpdated;
+
+ ///
+ /// This event is raised when a credential is added or removed from this repository.
+ ///
event EventHandler> CredentialsUpdated;
}
}
\ No newline at end of file
diff --git a/mRemoteV1/Credential/Repositories/ICredentialRepositoryConfig.cs b/mRemoteV1/Credential/Repositories/ICredentialRepositoryConfig.cs
index f29ef3940..f6d14044d 100644
--- a/mRemoteV1/Credential/Repositories/ICredentialRepositoryConfig.cs
+++ b/mRemoteV1/Credential/Repositories/ICredentialRepositoryConfig.cs
@@ -6,10 +6,33 @@ namespace mRemoteNG.Credential.Repositories
{
public interface ICredentialRepositoryConfig : INotifyPropertyChanged
{
+ ///
+ /// An Id which uniquely identifies this credential repository.
+ ///
Guid Id { get; }
+
+ ///
+ /// A friendly name for this credential repository
+ ///
string Title { get; set; }
+
+ ///
+ /// A name which uniquely identifies the type of credential repository this
+ /// config represents. This is used for determining which
+ /// to use to create the .
+ ///
string TypeName { get; }
+
+ ///
+ /// A string representing how to access the persisted credential records.
+ /// This may be a file path, URL, database connection string, etc. depending
+ /// on the implementation of the .
+ ///
string Source { get; set; }
+
+ ///
+ /// The password necessary to unlock and access the underlying repository.
+ ///
SecureString Key { get; set; }
}
}
\ No newline at end of file