public async Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
{
var authenticationResult = await _mediator.Send(
new AuthenticateCommand(context.UserName, context.Password));
if (authenticationResult.IsAuthenticated)
{
context.Result = new GrantValidationResult(
authenticationResult.User.Id.ToString(),
"forms", authenticationResult.User.Claims);
}
else
{
context.Result = new GrantValidationResult(
TokenRequestErrors.InvalidGrant,
authenticationResult.AuthenticationError);
}
}
}