Заголовки запросов, добавленные в owin, отсутствуют при использовании iis с модулем перезаписи url

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

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

Наблюдения:

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

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

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

Можете ли вы опубликовать полный код своего промежуточного программного обеспечения?

aasukisuki 10.09.2018 13:50

На самом деле я не уверен, смогу ли я, но завтра я могу попытаться привести эквивалентный пример. По промежуточного слоя работает в приложении OWIN. Например. если запрос не идет дальше вниз по потоку, но к контроллеру, заголовки там. Их, естественно, также можно увидеть при последующих вызовах промежуточного программного обеспечения.

valorl 10.09.2018 14:00

@valorl Вы когда-нибудь в этом разбирались? У меня такая же проблема

Terrance Jackson 10.02.2021 19:56

@TerranceJackson Мы этого не поняли. Завершено внедрение HTTP-модуля IIS в приложение ASP.NET вместо промежуточного программного обеспечения OWIN для добавления заголовков, которые нам нужно было добавить. Это сработало. пожимать плечами

valorl 16.02.2021 10:53
1
4
437
0

Другие вопросы по теме