2016-03-22 10 views
0

Наш API использует OWIN OAuth Signer. Он работал правильно в конечной точке, например https://server1.url/token.asp.net owin token игнорирование httpredirect

Теперь мы хотим перенаправить API на второй сервер (server2). Мы настроили IIS на сервере1 для перенаправления всех запросов API на server2. Насколько мы заметили, в этой конфигурации добавлена ​​запись «httpredirect» в файле web.config.

Проблема в том, что конечная точка маркера не перенаправляется. Все остальные конечные точки перенаправляются должным образом на server2, но конечная точка маркера не перенаправляется, она нормально обрабатывается на сервере1, и мы не понимаем, почему.

У кого-то есть догадка?

+0

Когда включен параметр «httpRedirect», каждый запрос приложения обрабатывается IIS, и IIS просто отправляет пустое тело со статусом типа «301» в заголовках. Таким образом, клиент отвечает за дальнейшие запросы. Но действительно странно, что IIS не перенаправляет запрос 'server1/token'. Что произойдет, когда вы удалите код приложения, оставив только файл web.config с перенаправлением? – tenbits

+0

Спасибо за идею. Мы попробуем это в ближайшее время. – JoaoRibeiro

ответ

1

Да, кажется, что трубопровод OWIN начинается до того, как IIS может перенаправить запрос. httpRedirect обрабатывается модулем HttpRedirection. И этот модуль регистрируется IIS после модуля OWIN, который регистрируется перед запуском приложения PreApplicationStart.

Извлеките само приложение и оставьте только web.config.

+0

Это изменение частично устранило проблему. Запрос начал перенаправляться, но мы не получили приемлемого ответа. После предложения об изменении @tenbits мы заметили, что запросы POST запрашивались на новый сервер как GET. Аналогичная проблема была сообщена здесь: http://programmers.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect Как мы можем предположить, мы изменили HTTP-код ответа на 307. Это фиксированное вторая часть проблемы. – JoaoRibeiro

Смежные вопросы