2009-06-17 1 views
1

У меня установлен SSL в корневом каталоге сервера. У меня есть страница, код которой за кодом должен перенаправляться после определенной проверки на защищенную страницу. Вот код перенаправления:Почему IIS отвечает на запрос страницы безопасности (SSL) с 302 в свою незащищенную версию?

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

ответ

0

Похоже, что у вас нет надлежащей конфигурации IIS, при этом SSL применяется к определенному веб-сайту.

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

+0

Он не делает 302 со статическими ресурсами, он обслуживает файл с обычным HTTP 200. –