Я использую промежуточное ПО и хочу отменить или перенаправить ответ, не заполняя журнал сообщениями об ошибках, на данный момент я не могу найти правильный способ сделать это, у меня есть следующий код, и я недоволен с ним.
internal class MyMiddleware
{
RequestDelegate _next;
public MyMiddleware(RequestDelegate next)
{
_next = next;
}
public Task InvokeAsync(HttpContext context)
{
if (context.RequestAborted.IsCancellationRequested)
return _next(context);
Uri newUrl;
//some logic
if (newUrl != null)
{
context.Response.StatusCode = StatusCodes.Status307TemporaryRedirect;
context.Response.Redirect(newUrl.AbsolutePath);
}
else
{
context.Response.Headers.Clear();
context.Response.StatusCode = StatusCodes.Status400BadRequest;
context.Response.Clear();
context.Abort();
}
return _next(context);
}
}
Промежуточное ПО не вызывает проблем, однако ни перенаправление, ни отмена не дают правильных заголовков и содержимого ответа. как правильно это реализовать?