Почему IIS отвечает на запрос защищенной (SSL) страницы с 302 к своей незащищенной версии? - PullRequest
1 голос
/ 17 июня 2009

У меня установлен SSL в корне сервера. У меня есть страница, код которой за кодом должен перенаправлять после определенной проверки на защищенную страницу. Вот код перенаправления:

switch (PageBase2.GetParameterValue("Environment")) //Retrieves App Setting named Environment from web.config
            {
                case "Server":
                    strURL = @"https://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx";
                    break;
                case "Local":
                    strURL = @"http://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx";
                    break;
                default:
                    strURL = @"https://" + HttpContext.Current.Request.Url.Authority + "/checkout/payment.aspx";
                    break;
            }
            Response.Redirect(strURL, false);

Но страница, обслуживаемая IIS, небезопасна. Я посмотрел на консоль firebug, и оказалось, что клиент делает запрос get на https://server/checkout/payment.aspx, но IIS отвечает с 302 на http://server/checkout/payment.aspx Любые подсказки относительно того, что может быть причиной этого. Я даже пытался заставить SSL для страницы, но это не работает, я получаю ошибку 403.4. (Для просмотра этого ресурса требуется SSL.) И если я удаляю логику перенаправления и кодирую страницу оплаты, чтобы перенаправить на ее версию SSL, когда соединение не защищено, используя Request.IsSecureConnection, я получаю бесконечный цикл перенаправления, просто потому что IIS все равно не будет обслуживать безопасную версию без 302. Есть идеи?

1 Ответ

0 голосов
/ 17 июня 2009

Похоже, у вас нет правильной конфигурации IIS с SSL, примененным к конкретному веб-сайту.

Вы можете проверить это, попытавшись посетить статический ресурс, файл изображения или HTML-файл по ссылке https. если это также перенаправляет, я бы посмотрел в конфигурации IIS.

...