public ValidationResult ValidateUser(string username, string password)
        {
            if (String.IsNullOrEmpty(username))
            {
                throw new ArgumentException("Value cannot be null or empty.", "username");
            }
            if (String.IsNullOrEmpty(password))
            {
                throw new ArgumentException("Value cannot be null or empty.", "password");
            }

            Log.Verbose("EF: Validating user {UserName}", username);

            username = username.ToLowerInvariant();
            using (var database = CreateContext())
            {
                var user = database.Users.FirstOrDefault(i => i.Username == username);
                if (user != null)
                {
                    var result = _passwordService.ComparePassword(password, username, user.PasswordSalt, user.Password) &&
                                 IpMacValidator.Validate(user.Mac)
                        ? ValidationResult.Success
                        : ValidationResult.Failure;
                    Log.Verbose("EF: User {UserName} validation result {Result}", username, result);
                    return(result);
                }
                else
                {
                    Log.Warning("EF: Failed to find user {UserName}", username);
                }
            }
            return(ValidationResult.Failure);
        }
Ejemplo n.º 2
0
        public bool ValidateUser(string username, string password)
        {
            if (String.IsNullOrEmpty(username))
            {
                throw new ArgumentException("Value cannot be null or empty.", "userName");
            }
            if (String.IsNullOrEmpty(password))
            {
                throw new ArgumentException("Value cannot be null or empty.", "password");
            }

            username = username.ToLowerInvariant();
            using (var database = _createDatabaseContext())
            {
                var user = database.Users.FirstOrDefault(i => i.Username == username);
                return(user != null && _passwordService.ComparePassword(password, username, user.Password));
            }
        }