Example #1
0
        public async Task ShouldReturnExistingUserOnValidCandidateIdAndPassword()
        {
            ILogger logger = new ConsoleLogger();
            LoginRequestValidator validator      = new LoginRequestValidator();
            PasswordHasher        passwordHasher = new PasswordHasher();
            LoginDto loginDto = new LoginDto()
            {
                CandidateId = "aaabbb000", Password = "******"
            };

            var query  = new LoginUserQuery(logger, validator, DbContext.Object, passwordHasher);
            var result = await query.Execute(loginDto);

            Assert.AreEqual(result, GetUserCollection()[0]);
        }
        public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
        {
            User user = null;

            try
            {
                user = await _loginUserQuery.Execute(new LoginDto()
                {
                    CandidateId = context.UserName, Password = context.Password
                });

                context.Result = new GrantValidationResult(user.Id.ToString(), OidcConstants.AuthenticationMethods.Password);
                return;
            }
            catch (Exception e)
            {
                _logger.Log(e);
                context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "Validation Error");
            }
        }