Moje oprogramowanie pośrednie OWIN wygląda następująco. (Framework to ASP.NET Web API).Zmiana obiektu odpowiedzi z oprogramowania pośredniego 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;
}
}
Pytania:
Czy to zalecana praktyka czerpać z
OwinMiddleware
? Widzę, że w źródle Katany niektóre klasy oprogramowania pośredniego pochodzą zOwinMiddleware
, a niektóre nie.Widzę, że nagłówki zapytań są w porządku. Ustawienie nagłówka odpowiedzi lub kodu statusu po
Next.Invoke
w moim oprogramowaniu pośredniczącym nie ma wpływu na odpowiedź zwróconą do klienta. Ale jeśli ustawię nagłówek odpowiedzi lub status przed wywołaniemNext.Invoke
, odpowiedź z nagłówkami i ustawionym przeze mnie stanem jest zwracana do klienta. Jaki jest właściwy sposób ich ustawiania?
Dzięki Youssef. W przypadku punktu 2, czy istnieje przykładowy kod w źródle Katany, czy gdzie indziej, na który mogę patrzeć, z punktu widzenia najlepszych praktyk? Wierzę, że to, o co pytam, jest dość powszechną potrzebą i czy każdy powinien to przełączać, aby ustawić nagłówek odpowiedzi, jeśli używamy oprogramowania pośredniego OWIN? Wszelkie wskazówki zostaną docenione. – Badri
Jestem w stanie rozwiązać problem, wykonując sugestię, ale czy nie ma łatwego wyjścia? Mam na myśli to, że to zbyt dużo pracy, aby ustawić nagłówek odpowiedzi na wyjście, szczególnie jeśli jest się przyzwyczajonym do obsługi komunikatów Web API. – Badri
Zaktualizowano odpowiedź za pomocą prostszej metody. Daj mi znać, jeśli to działa. –