Пример #1
0
        private void TryRemove(ICredentialSet toRemove)
        {
            var credentailToRemove = toRemove as DbCredentialSet;

            DeleteFromDatabase(credentailToRemove);
            this.cache.Delete(credentailToRemove);
        }
Пример #2
0
        private void TryAdd(ICredentialSet toAdd)
        {
            var credentialToAdd = toAdd as DbCredentialSet;

            AddToDatabase(credentialToAdd);
            this.cache.Add(credentialToAdd);
        }
Пример #3
0
        public void CredentialsUpdateTest()
        {
            IFavorite favorite = this.CreateTestFavorite();

            this.PrimaryFavorites.Add(favorite);
            ICredentialSet credential = this.PrimaryFactory.CreateCredentialSet();

            credential.Name = "testCredential";
            var guarded = new GuardedCredential(credential, this.PrimaryPersistence.Security);

            guarded.Password = VALIDATION_VALUE;
            this.PrimaryPersistence.Credentials.Add(credential);

            IFavorite secondary = this.SecondaryFavorites.FirstOrDefault();

            Assert.AreEqual(Guid.Empty, secondary.Security.Credential, "Favorite credentials should be null");

            favorite.Security.Credential = credential.Id;
            this.PrimaryFavorites.Update(favorite);
            var secondaryFavorites = this.SecondaryFavorites as Terminals.Data.DB.Favorites;

            secondaryFavorites.RefreshCache();
            secondary = this.SecondaryFavorites.FirstOrDefault();
            Guid favoriteCredential = secondary.Security.Credential;

            Assert.AreNotEqual(Guid.Empty, favoriteCredential, "Favorite credential wasn't assigned properly");
            ICredentialSet resolvedCredentials = this.SecondaryPersistence.Credentials[favoriteCredential];
            var            resolvedGuarded     = new GuardedCredential(resolvedCredentials, this.SecondaryPersistence.Security);

            Assert.AreEqual(VALIDATION_VALUE, resolvedGuarded.Password, "Favorite credentials, doesn't match");
            this.AssertStoredCredentialsCount();
        }
Пример #4
0
        internal static void AssertCredentialsValidation(IDataValidator validator, ICredentialSet credentailSet, int expectedErrorsCount)
        {
            credentailSet.Name = LongText;
            var results = validator.Validate(credentailSet);

            Assert.AreEqual(expectedErrorsCount, results.Count(), "CredentailSet validation failed");
        }
Пример #5
0
        private void UpdateFromControls(ICredentialSet toUpdate)
        {
            toUpdate.Name = this.NameTextbox.Text;
            var guarded = new GuardedCredential(toUpdate, this.persistence.Security);

            this.credentialsPanel1.SaveTo(guarded);
        }
Пример #6
0
        public void ResolveCredentials(ISecurityOptions result, Guid credentialId)
        {
            ICredentialSet source = this.credentials[credentialId];

            this.UpdateFromCredential(source, result);
            this.UpdateFromDefaultValues(result);
        }
        internal ManageCredentialForm(IPersistence persistence, ICredentialSet editedCredential)
        {
            InitializeComponent();

            this.persistence = persistence;
            this.editedCredential = editedCredential;
            FillControlsFromCredential();
        }
Пример #8
0
        private static void AssertFavoriteCredentialSet(IPersistence persistence)
        {
            IFavorite      favoriteWithCredentials = persistence.Favorites.ToList()[1];
            var            credentialsId           = favoriteWithCredentials.Security.Credential;
            ICredentialSet credential = persistence.Credentials[credentialsId];

            Assert.IsNotNull(credential, "Favorite referenced credential was lost");
        }
 /// <summary>
 /// Creates new instance of parameters required to open new connection
 /// </summary>
 /// <param name="favorites">Not null colleciton of favorites, where to connect</param>
 /// <param name="forceConsole">For RDP only. If defined, will replace the RDP Console option</param>
 /// <param name="forceNewWindow">If defined, will replace the favorite option to open connection in new window</param>
 /// <param name="credentials">If defined, replaces the favorite authentication informations</param>
 internal ConnectionDefinition(IEnumerable<IFavorite> favorites, bool? forceConsole = null,
     bool? forceNewWindow = null, ICredentialSet credentials = null, string newFavorite = "")
 {
     this.Favorites = favorites.ToList(); // evaluate imediately
     this.ForceConsole = forceConsole;
     this.ForceNewWindow = forceNewWindow;
     this.Credentials = credentials;
     this.NewFavorite = newFavorite;
 }
Пример #10
0
        private void EditSelectedCredential()
        {
            ICredentialSet selected = this.GetSelectedCredentials();

            if (selected != null)
            {
                this.EditCredential(selected);
            }
        }
Пример #11
0
 /// <summary>
 /// Creates new instance of parameters required to open new connection
 /// </summary>
 /// <param name="favorites">Not null colleciton of favorites, where to connect</param>
 /// <param name="forceConsole">For RDP only. If defined, will replace the RDP Console option</param>
 /// <param name="forceNewWindow">If defined, will replace the favorite option to open connection in new window</param>
 /// <param name="credentials">If defined, replaces the favorite authentication informations</param>
 internal ConnectionDefinition(IEnumerable <IFavorite> favorites, bool?forceConsole = null,
                               bool?forceNewWindow = null, ICredentialSet credentials = null, string newFavorite = "")
 {
     this.Favorites      = favorites.ToList(); // evaluate imediately
     this.ForceConsole   = forceConsole;
     this.ForceNewWindow = forceNewWindow;
     this.Credentials    = credentials;
     this.NewFavorite    = newFavorite;
 }
Пример #12
0
 private void EditCredential(ICredentialSet selected)
 {
     using (var mgr = new ManageCredentialForm(this.persistence, selected))
     {
         if (mgr.ShowDialog() == DialogResult.OK)
         {
             this.BindList();
         }
     }
 }
Пример #13
0
        public void CredentialSet_ResolveCredentials_ReturnsCredentialValues()
        {
            ICredentialSet credential = this.SetupCredential();

            original.Credential = credential.Id;
            IGuardedSecurity result  = this.ResolveCredentials(original);
            const string     MESSAGE = "When credential set is defined, its pasword is used to connect.";

            Assert.AreEqual(credential.EncryptedPassword, result.EncryptedPassword, MESSAGE);
        }
Пример #14
0
 internal static void UpdateFromCredential(ICredentialSet source, ISecurityOptions target)
 {
     if (source != null)
     {
         target.Credential = source.Id;
         target.Domain = source.Domain;
         target.UserName = source.UserName;
         target.EncryptedPassword = source.EncryptedPassword;
     }
 }
Пример #15
0
        private void UpdateFromvrDCredentials(vRDConfigurationFileCredentialsFolderCredentials source,
                                              ICredentialSet target)
        {
            var guarded = new GuardedCredential(target, this.persistence.Security);

            guarded.Domain   = source.Domain;
            target.Name      = source.Name;
            guarded.Password = source.Password;
            guarded.UserName = source.UserName;
        }
Пример #16
0
        public void Add(ICredentialSet toAdd)
        {
            if (string.IsNullOrEmpty(toAdd.Name))
            {
                return;
            }

            this.cache.Add(toAdd);
            this.Save();
        }
 // dont do it in constructor to prevent wrong acces to the persistence from designer
 private void UserSelectForm_Shown(object sender, EventArgs e)
 {
     // it always has to be present
     this.customCredentials = this.persistence.Factory.CreateCredentialSet();
     this.customCredentials.Name = "(custom)";
     List<ICredentialSet> credentials = this.persistence.Credentials.ToList();
     credentials.Insert(0, this.customCredentials);
     this.credentialsComboBox.DataSource = credentials;
     this.credentialsComboBox.SelectedItem = this.customCredentials;
 }
Пример #18
0
        // dont do it in constructor to prevent wrong acces to the persistence from designer
        private void UserSelectForm_Shown(object sender, EventArgs e)
        {
            // it always has to be present
            this.customCredentials      = this.persistence.Factory.CreateCredentialSet();
            this.customCredentials.Name = "(custom)";
            List <ICredentialSet> credentials = this.persistence.Credentials.ToList();

            credentials.Insert(0, this.customCredentials);
            this.credentialsComboBox.DataSource   = credentials;
            this.credentialsComboBox.SelectedItem = this.customCredentials;
        }
Пример #19
0
 public void Add(ICredentialSet toAdd)
 {
     try // no concurrency here, because there are no dependences on other tables
     {
         this.TryAdd(toAdd);
     }
     catch (EntityException exception)
     {
         this.dispatcher.ReportActionError(Add, toAdd, this, exception, "Unable to add credential to database");
     }
 }
Пример #20
0
        public void Update(ICredentialSet toUpdate)
        {
            var oldItem = this[toUpdate.Id];

            if (oldItem != null)
            {
                this.cache.Remove(oldItem);
            }
            this.cache.Add(toUpdate);
            this.Save();
        }
Пример #21
0
        private void UpdateOldOrCreateNew()
        {
            if (this.editedCredential != null)
            {
                this.Update(this.editedCredential);
                return;
            }

            ICredentialSet newCredential = this.CreateNewCredential();

            Credentials.Add(newCredential);
        }
Пример #22
0
 private void UpdateFromCredential(ICredentialSet source, ISecurityOptions target)
 {
     if (source != null)
     {
         target.Credential = source.Id;
         var guardedSource = new GuardedCredential(source, this.PersistenceSecurity);
         var guardedTarget = new GuardedCredential(target, this.PersistenceSecurity);
         guardedTarget.Domain     = guardedSource.Domain;
         guardedTarget.UserName   = guardedSource.UserName;
         target.EncryptedPassword = source.EncryptedPassword;
     }
 }
Пример #23
0
        public void UpdateCredentialsPasswordsByNewKeyMaterialTest()
        {
            // this is the only one test, which plays with different master passwords
            Settings.Instance.PersistenceSecurity = this.PrimaryPersistence.Security;
            this.AddTestCredentialsToDatabase();
            this.PrimaryPersistence.Security.UpdateMasterPassword(VALIDATION_VALUE_B);

            ICredentialSet checkCredentials = this.SecondaryPersistence.Credentials.FirstOrDefault();
            string         resolvedPassword = this.ResolveVerifiedPassword(checkCredentials);

            Assert.AreEqual(VALIDATION_VALUE, resolvedPassword, "Password lost after update of key material");
        }
        internal string ResolveDomainName()
        {
            ICredentialSet cred = this.credentials[this.favorite.Credential];

            if (cred != null)
            {
                var guarded = new GuardedCredential(cred, this.security);
                return(guarded.Domain);
            }

            return(this.favorite.DomainName);
        }
Пример #25
0
 private void TryUpdate(ICredentialSet toUpdate)
 {
     using (var database = DatabaseConnections.CreateInstance())
     {
         var credentialToUpdate = toUpdate as DbCredentialSet;
         database.CredentialBase.Attach(credentialToUpdate);
         database.Cache.MarkAsModified(credentialToUpdate);
         database.SaveImmediatelyIfRequested();
         database.Cache.Detach(credentialToUpdate);
         this.cache.Update(credentialToUpdate);
     }
 }
Пример #26
0
        internal ManageCredentialForm(IPersistence persistence, ICredentialSet editedCredential)
        {
            InitializeComponent();

            this.persistence                = persistence;
            this.validator                  = persistence.Factory.CreateValidator();
            this.editedCredential           = editedCredential;
            this.credentialsPanel1.Settings = Settings.Instance;
            this.credentialsPanel1.tableLayoutPanel1.Location = new Point(78, 0);
            this.credentialsPanel1.tableLayoutPanel1.Size     = new Size(this.NameTextbox.Width + 35, 80);
            this.credentialsPanel1.LoadMRUs();
            FillControlsFromCredential();
        }
Пример #27
0
        private bool UpdateCredential()
        {
            ICredentialSet conflicting    = Credentials[this.NameTextbox.Text];
            bool           hasConflicting = conflicting != null && !conflicting.Equals(this.editedCredential);

            if (hasConflicting && this.EditedNameHasChanged())
            {
                return(UpdateConflicting(conflicting, this.editedCredential));
            }

            UpdateOldOrCreateNew();
            return(true);
        }
Пример #28
0
        private bool ValidateNameAndUserName()
        {
            ICredentialSet prototype        = this.CreateNewCredential();
            var            results          = this.validator.Validate(prototype);
            string         nameErrorMessage = results["Name"];

            this.errorProvider.SetError(this.NameTextbox, nameErrorMessage);
            // the validated object contains only encrypted properties.
            string userNameErrorMessage = results["EncryptedUserName"];

            this.credentialsPanel1.SetUserNameError(this.errorProvider, userNameErrorMessage);
            return(results.Empty);
        }
Пример #29
0
 private void TryApplyCredentials(List <IFavorite> selectedFavorites, ICredentialSet credential)
 {
     using (Database database = DatabaseConnections.CreateInstance())
     {
         var dbFavorites = selectedFavorites.Cast <DbFavorite>().ToList();
         Data.Favorites.ApplyCredentialsToFavorites(selectedFavorites, credential);
         database.Cache.AttachAll(dbFavorites);
         // here we have to mark it modified, because caching detail properties
         // sets proper credential set reference
         database.Cache.MarkAsModified(dbFavorites);
         this.batchActions.SaveAndReportFavoritesUpdated(database, dbFavorites, selectedFavorites);
     }
 }
        private bool UpdateConflicting(ICredentialSet conflicting, ICredentialSet oldItem)
        {
            DialogResult result = MessageBox.Show("The Credential Name you entered already exists.\r\n" +
                                                  "Do you want to overwrite it?", "Credential manager",
                                                   MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (result != DialogResult.Yes)
                return false;

            if (oldItem != null)
                Credentials.Remove(oldItem);

            this.Update(conflicting);
            return true;
        }
Пример #31
0
        private void DeleteButton_Click(object sender, EventArgs e)
        {
            ICredentialSet toRemove = this.GetSelectedCredentials();

            if (toRemove != null)
            {
                if (MessageBox.Show("Are you sure you want to delete credential " + toRemove.Name + "?",
                                    "Credential manager", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    this.Credentials.Remove(toRemove);
                    this.BindList();
                }
            }
        }
Пример #32
0
        private static void AssertUserAndCredential(IPersistence persistence)
        {
            // we don't have to authenticate, because it was already done by upgrade
            IFavorite favorite        = persistence.Favorites.First();
            var       guardedSecurity = new GuardedCredential(favorite.Security, persistence.Security);

            Assert.AreEqual(PasswordTests.USERPASSWORD, guardedSecurity.Password, "Upgrade favorite password failed.");

            ICredentialSet credential = persistence.Credentials.First();
            var            guarded    = new GuardedCredential(credential, persistence.Security);

            Assert.AreEqual(TEST_PASSWORD, guarded.UserName, "Credential user name upgrade failed.");
            Assert.AreEqual(TEST_PASSWORD, guarded.Password, "Credential password upgrade failed.");
        }
        public string ResolveUserName()
        {
            if (!string.IsNullOrEmpty(this.favorite.Credential))
            {
                ICredentialSet cred = this.credentials[this.favorite.Credential];

                if (cred != null)
                {
                    var guarded = new GuardedCredential(cred, this.security);
                    return(guarded.UserName);
                }
            }

            return(this.favorite.UserName);
        }
Пример #34
0
 public void Update(ICredentialSet toUpdate)
 {
     try
     {
         this.TryUpdate(toUpdate);
     }
     catch (DbUpdateException) // item already removed
     {
         this.cache.Delete((DbCredentialSet)toUpdate);
     }
     catch (EntityException exception)
     {
         this.dispatcher.ReportActionError(Update, toUpdate, this, exception, "Unable to update credential set.");
     }
 }
Пример #35
0
 public void Remove(ICredentialSet toRemove)
 {
     try
     {
         this.TryRemove(toRemove);
     }
     catch (DbUpdateException)
     {
         this.cache.Delete((DbCredentialSet)toRemove);
     }
     catch (EntityException exception)
     {
         this.dispatcher.ReportActionError(this.Remove, toRemove, this, exception,
                                           "Unable to remove credential from database.");
     }
 }
 private void TryRemove(ICredentialSet toRemove)
 {
     var credentailToRemove = toRemove as DbCredentialSet;
     DeleteFromDatabase(credentailToRemove);
     this.cache.Delete(credentailToRemove);
 }
Пример #37
0
 private static void UpdateFromvrDCredentials(vRDConfigurationFileCredentialsFolderCredentials source,
                                              ICredentialSet target)
 {
     target.Domain = source.Domain;
     target.Name = source.Name;
     target.Password = source.Password;
     target.UserName = source.UserName;
 }
 private void TryUpdate(ICredentialSet toUpdate)
 {
     using (Database database = DatabaseConnections.CreateInstance())
     {
         var credentialToUpdate = toUpdate as DbCredentialSet;
         database.CredentialBase.Attach(credentialToUpdate);
         database.Cache.MarkAsModified(credentialToUpdate);
         database.SaveImmediatelyIfRequested();
         database.Cache.Detach(credentialToUpdate);
         this.cache.Update(credentialToUpdate);
     }
 }
 public void Add(ICredentialSet toAdd)
 {
     try // no concurrency here, because there are no dependences on other tables
     {
         this.TryAdd(toAdd);
     }
     catch (EntityException exception)
     {
         this.dispatcher.ReportActionError(Add, toAdd, this, exception, "Unable to add credential to database");
     }
 }
Пример #40
0
 private void ConnectFromQuickCombobox(bool forceConsole, bool forceNewWindow = false, ICredentialSet credentials = null)
 {
     string connectionName = this.tscConnectTo.Text;
     if (!string.IsNullOrEmpty(connectionName))
     {
         this.connectionsUiFactory.ConnectByFavoriteNames(new List<string>() { connectionName }, forceConsole, forceNewWindow, credentials);
     }
 }
 private void Update(ICredentialSet conflicting)
 {
     this.UpdateFromControls(conflicting);
     Credentials.Update(conflicting);
 }
 /// <summary>
 /// Creates new instance of parameters required to open new connection
 /// </summary>
 /// <param name="favorite">Not null favorite, where to connect</param>
 /// <param name="forceConsole">For RDP only. If defined, will replace the RDP Console option</param>
 /// <param name="forceNewWindow">If defined, will replace the favorite option to open connection in new window</param>
 /// <param name="credentials">If defined, replaces the favorite authentication informations</param>
 internal ConnectionDefinition(IFavorite favorite, bool? forceConsole = null,
     bool? forceNewWindow = null, ICredentialSet credentials = null)
     : this(new List<IFavorite>() { favorite }, forceConsole, forceNewWindow, credentials)
 {
 }
 private void TryAdd(ICredentialSet toAdd)
 {
     var credentialToAdd = toAdd as DbCredentialSet;
     AddToDatabase(credentialToAdd);
     this.cache.Add(credentialToAdd);
 }
 public void Update(ICredentialSet toUpdate)
 {
     try
     {
         this.TryUpdate(toUpdate);
     }
     catch (DbUpdateException) // item already removed
     {
         this.cache.Delete((DbCredentialSet)toUpdate);
     }
     catch (EntityException exception)
     {
         this.dispatcher.ReportActionError(Update, toUpdate, this, exception, "Unable to update credential set.");
     }
 }
 private void EditCredential(ICredentialSet selected)
 {
     using (var mgr = new ManageCredentialForm(this.persistence, selected))
     {
         if (mgr.ShowDialog() == DialogResult.OK)
             this.BindList();
     }
 }
Пример #46
0
 internal static void ApplyCredentialsToFavorites(List<IFavorite> selectedFavorites, ICredentialSet credential)
 {
     foreach (IFavorite favorite in selectedFavorites)
     {
         favorite.Security.Credential = credential.Id;
     }
 }
Пример #47
0
 public void ApplyCredentialsToAllFavorites(List<IFavorite> selectedFavorites, ICredentialSet credential)
 {
     ApplyCredentialsToFavorites(selectedFavorites, credential);
     SaveAndReportFavoritesUpdate(selectedFavorites);
 }
 public void Remove(ICredentialSet toRemove)
 {
     try
     {
         this.TryRemove(toRemove);
     }
     catch (DbUpdateException)
     {
         this.cache.Delete((DbCredentialSet)toRemove);
     }
     catch (EntityException exception)
     {
         this.dispatcher.ReportActionError(Remove, toRemove, this, exception,
                                           "Unable to remove credential from database.");
     }
 }
 public void Remove(ICredentialSet toRemove)
 {
     this.cache.Remove(toRemove);
     this.Save();
 }
 public void Update(ICredentialSet toUpdate)
 {
     var oldItem = this[toUpdate.Id];
     if (oldItem != null)
         this.cache.Remove(oldItem);
     this.cache.Add(toUpdate);
     Save();
 }
Пример #51
0
 void ISecurityOptions.UpdateFromCredential(ICredentialSet source)
 {
     UpdateFromCredential(source, this);
 }
        public void Add(ICredentialSet toAdd)
        {
            if (String.IsNullOrEmpty(toAdd.Name))
                return;

            this.cache.Add(toAdd);
            this.Save();
        }
Пример #53
0
 internal static ValidationStates Validate(ICredentialSet credentialSet)
 {
     var results = ValidateObject(credentialSet);
     return new ValidationStates(results);
 }
 private void UpdateFromControls(ICredentialSet toUpdate)
 {
     toUpdate.Name = this.NameTextbox.Text;
     this.credentialsPanel1.SaveTo(toUpdate);
 }