Заголовки запроса, добавленные в OWIN, отсутствуют при использовании IIS с модулем перезаписи URL - PullRequest
0 голосов
/ 10 сентября 2018

Контекст: Пользовательский API-шлюз, реализованный в ASP.NET и OWIN, размещенный в IIS. Функциональность обратного прокси реализована с использованием правил перезаписи URL IIS. Промежуточное ПО OWIN используется для проверки и / или манипулирования запросами (например, авторизацией) и ответами (например, CORS)

Проблема: При использовании промежуточного программного обеспечения OWIN для добавления / изменения заголовков запроса (например, context.Request.Headers.Add/Set/Append) они просто отсутствуют, когда он достигает нижестоящего API.

Наблюдения:

  • Проблема только в заголовках запроса . Добавление response headers работает нормально.
  • Вызовы OWIN, изменяющие заголовки, похоже, зарегистрированы и зарегистрированы IIS: IIS logs showing the header is being set (результат context.Request.Headers.Append("X-Test-Last-Middleware", "Testing"))
  • Когда пользовательские заголовки добавляются на стороне клиента (еще до того, как запрос достигнет шлюза OWIN), они прекрасно достигают нисходящего API
  • Я пытался разрешить заголовки в переменных сервера IIS URL Rewrite, используя синтаксис / соглашение HTTP_X_Test_Last_Middleware, но это не помогло
  • При добавлении вручную в правило перезаписи IIS (в качестве серверной переменной, использующей то же соглашение), заголовок присутствует в нисходящем направлении (при условии, что серверная переменная была разрешена). Это, однако, не подходит для нашего варианта использования.

У кого-нибудь есть идеи, как это сделать? Ввод динамической информации в запрос (заголовки) до того, как он достигнет нижестоящего API, является обязательным.

Заранее спасибо.

...