2012-06-19 3 views
0

У нас есть простое требование использовать https для определенных определенных страниц в веб-приложении asp.net 4.0. Для проверки нашей реализации мы развернули простое приложение asp.net 4.0 для IIS 7. Приложение было закодировано для перенаправления страницы default.aspx на securepage.aspx через https на основе флага web.config.перенаправление HTTP-HTTPS в asp.net не работает

protected void Page_Load(object sender, EventArgs e) 
    { 
     Uri requestUri = Page.Request.Url; 
     UriBuilder builder = new UriBuilder("https", requestUri.Host, requestUri.Port, "SecurePage.aspx"); 
     string secureUrl = builder.Uri.ToString(); 

     if (bool.Parse(ConfigurationManager.AppSettings["UseSecure"])) 
     { 
      Response.Redirect(secureUrl, true); 
     } 
     else 
     { 
      Response.Write(secureUrl); 
     } 
    } 

Но после того, как мы развернуть это приложение на IIS 7 и загрузить страницу default.aspx, она показывает «Internet Explorer не может отобразить веб-страницу». Но если мы отключим флаг конфигурации, он отобразит страницу правильно. Приложение имеет привязку http на порту 82 и https на порту 444.

Может кто-нибудь указать мне, где мы ошибаемся.

+0

Ведьма из двух ответов - это тот, который работает с «http» или с «https»? или оба ? потому что ответы имеют этот маленький различие. – Aristos

+0

Оба они будут работать в зависимости от того, что требуется. Основной момент был в том, что порт https был таким же, как порт HTTP-запроса – koder

ответ

1

Когда вы вводите фронт https, тогда браузер перейдет на порт 443, а не на 444, поэтому для перемещения по своему пользовательскому порту вам нужно ввести его как.

UriBuilder builder = new UriBuilder("http", requestUri.Host, 444, "SecurePage.aspx"); 
1

Вы используете порт текущего запроса с помощью requestUri.Port, который возвращает 80. Вы должны жестко закодировать 444 вместо:

UriBuilder builder = new UriBuilder("https", requestUri.Host, 444, "SecurePage.aspx"); 

Или использовать настраиваемую переменную при изменении порта.

Смежные вопросы