Мое промежуточное ПО OWIN - это так. (Framework - это веб-интерфейс ASP.NET).Изменение объекта ответа от промежуточного программного обеспечения OWIN
public class MyMiddleware : OwinMiddleware
{
public MyMiddleware(OwinMiddleware next) : base(next) { }
public override async Task Invoke(OwinRequest request, OwinResponse response)
{
var header = request.GetHeader("X-Whatever-Header");
await Next.Invoke(request, response);
response.SetHeader("X-MyResponse-Header", "Some Value");
response.StatusCode = 403;
}
}
Вопросы:
ли рекомендуемая практика извлечь из
OwinMiddleware
? Я вижу, что в источнике Katana некоторые из классов промежуточного программного обеспечения происходят отOwinMiddleware
, а некоторые нет.Я могу видеть заголовки запросов в порядке. Настройка заголовка ответа или кода состояния после
Next.Invoke
в моем промежуточном программном обеспечении не влияет на ответ, возвращаемый клиенту. Но если я установил заголовок ответа или статус перед вызовомNext.Invoke
, ответ с заголовками и статус, который я установил, возвращаются клиенту. Каков правильный способ их настройки?
Благодаря Юсеф. Для точки №2 есть ли пример кода в источнике Katana или где-то еще, на что я могу смотреть, из лучшей практики pt зрения? Я считаю, что то, о чем я прошу, является довольно распространенной потребностью, и каждый должен использовать этот поток, чтобы просто настроить заголовок ответа, если мы используем промежуточное ПО OWIN? Любые указатели будут оценены. – Badri
Я могу решить проблему, следуя вашим предложениям, но не так ли? Я имею в виду, что это слишком большая работа, чтобы просто настроить заголовок ответа на выходе, особенно если он используется для обработчика сообщений веб-API. – Badri
Обновлен ответ более простым методом. Пожалуйста, дайте мне знать, если это сработает. –