Переадресация HTTP запросов на HTTPS

MOSS 2007, в основном, предназначен для совместной работы сотрудников компании, заведенных в каком-либо каталоге учетных записей.

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

Одним из способов решения этой задачи является аутентификация пользователя с использованием механизма .NET Forms.

Стоит отметить, что данный механизм предполагает пересылку учетных данных в открытом виде, что требует работы со страницами аутентификации с использованием защищенного протокола HTTPS.

Переход между HTTP и HTTPS осуществляется с использованием стандартной конструкцией ASP.NET Response.Redirect.

Как осуществить настройку такого механизма - это, конечно, тема для отдельно разговора. В Интернете существует целый ряд статей, связанных с данным вопросом.

При работе на одном из моих проектов, я столкнулся со странным поведением, внедряемого решения, использующего описанный выше механизм:

  • При работе на локальной машине, переход с HTTP на HTTPS и обратно проходил без проблем;
  • При работе удаленно, переход не осуществлялся и клиент получал ошибку 500.

При анализе трафика, я заметил, что, хотя браузер и получал от сервера Redirect 302, Location в заголовке был неверным.

После некоторого поиска я нашел в базе статей Microsoft KB, объясняющую такое повеление: https://support.microsoft.com/kb/924373/en-us

Оказалось, что данное поведение было вызвано Ms Isa Server 2006, который публиковал мое решение в Интернет.