}         // 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;
            }
        }
示例#2
0
        }         // 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);
        }