Я пытаюсь перехватить все ошибки 4xx, которые возникают во время обработки запроса с использованием ядра 2 asp.net.
Вот мой поток:
HTTP-запрос -> Промежуточное программное обеспечение ->OnActionExecutionAsync (Фильтр действий) -> Назад к промежуточному программному обеспечению
Теперь здесь, во время метода OnActionExecutionAsync, я хочу обработать ответ и проверить ошибки 4xx, установить все детали с помощью класса, сериализовать его и отправить егообратно к потребителю вместо передачи запроса обратно промежуточному программному обеспечению.
Вот подробности кода:
public class ValidationProblemDetailsResult : IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
var responseContext = await next();
if (responseContext.Result is ObjectResult result && result is BadRequestObjectResult)
{
var problemDetails = new ValidationProblemDetails
{
Status = result.StatusCode,
Title = "Request Validation Error",
Instance = $"urn:TestApplication:badrequest:{Guid.NewGuid()}"
};
responseContext.Canceled = false;
responseContext.HttpContext.Response.WriteJson(problemDetails, "application/problem+json");
}
}
}
Может кто-нибудь помочь мне узнать, как решить эту проблему?