Переадресация 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, который публиковал мое решение в Интернет.