} // LogInAction() /// <summary> /// Safeguard if developer forget user password. In case of not existing admin1 account new one is created. /// </summary> public static void AdminExist() { User user = MainWindowViewModel.Context.Users.FirstOrDefault(u => u.Name == "Admin1"); if (user == null) { MainWindowViewModel.NotifyUser("Admin1 accoutn doesn't exist."); var tempUser = new User(); tempUser.Name = "Admin1"; tempUser.PasswordSalt = PasswordEncryptor.GenerateSalt(); tempUser.Password = PasswordEncryptor.GeneratePassword("Sauron666", tempUser.PasswordSalt); tempUser.Type = Enumerators.UserTypeEnum.Admin; tempUser.AccountActive = true; MainWindowViewModel.Context.Users.Add(tempUser); MainWindowViewModel.SaveContext(); UsersListViewModel.Instance.Refresh(); } else { return; } }
} // Cancel_button_Click() public void SavePassword(object parameters) { var values = (object[])parameters; var passwordText = ((PasswordBox)values[0]).Password; var passwordConfirmation = ((PasswordBox)values[1]).Password; var regexExpression = new Regex(@"!|@|#|\$|%|\^|&|\*|\(|\)|-|_|=|\+"); if (passwordText.Any(char.IsDigit) || regexExpression.IsMatch(passwordText)) { if (passwordText.Length >= 8) { if (passwordText == passwordConfirmation) { User selectedUser = MainWindowViewModel.Context.Users.FirstOrDefault(u => u.Id == userId); selectedUser.PasswordSalt = PasswordEncryptor.GenerateSalt(); selectedUser.Password = PasswordEncryptor.GeneratePassword(passwordProposition.Password, selectedUser.PasswordSalt); MainWindowViewModel.SaveContext(); selectedUser = new User(); this.Close(); } else { MainWindowViewModel.NotifyUser("Those passwords didn't match. Try again."); } } else { MainWindowViewModel.NotifyUser("Password is to short, should contain at least 8 characters."); } } else { MainWindowViewModel.NotifyUser("Invalid password. Password should contain at least one number or special character."); } } // Save_password()
public void EnsureGenerateSaltInvokesCryptoServiceGenerateSaltOperation() { var cryptoService = A.Fake <ICryptoService>(); var service = new PasswordEncryptor(cryptoService); service.GenerateSalt(); A.CallTo(() => cryptoService.GenerateSalt()) .MustHaveHappened(Repeated.Exactly.Once); }