Beispiel #1
0
        public UserManageResult CreateUser(string email, SecureString password)
        {
            IdentityUser user = _bifUserStore.LoadUserByEmail(email);

            if (user != null)
            {
                return new UserManageResult {
                           Success = false,
                           Errors  = new List <string> {
                               "User already exists."
                           }
                }
            }
            ;

            bool passwordIsValid = validatePassword(password.Unsecure());

            if (!passwordIsValid)
            {
                return new UserManageResult {
                           Success = false,
                           Errors  = new List <string> {
                               "Password does not meet minimum complexity requirements."
                           }
                }
            }
            ;

            byte[] salt = CryptoTools.CreateSalt();
            user = new IdentityUser {
                Id           = Guid.NewGuid().ToString(),
                Entropy      = salt,
                Email        = email.Trim(),
                PasswordHash = password.HashValue(salt),
                LastLogin    = DateTime.UtcNow
            };
            _bifUserStore.Add(user);
            _bifUserStore.Update();

            return(new UserManageResult {
                Success = true
            });
        }