У меня установлен 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.
Есть идеи?