Как проверить, использует ли текущая страница SSL в ASP.Net? - PullRequest
11 голосов
/ 29 ноября 2011

У меня есть сайт, который по дизайну и предпочтениям клиента может обслуживаться с использованием HTTP или HTTPS.Компания-клиент просто выбирает, ссылаться на наш сайт или нет, используя http: // или https: //, а IIS сделает все остальное.На страницу добавляется функция, которая имеет дело с конфиденциальной информацией, которую следует просматривать только по SSL.Клиенты согласились с тем, что эта дополнительная функция должна быть отключена на этой странице, когда не используется соединение HTTPS.

В событии Page_Load я хотел бы добавить оператор IF, который проверяет, просматривается ли страница в данный момент.HTTPS, чтобы показать или отключить эту дополнительную функцию.Я, вероятно, могу прочитать URL-адрес, чтобы увидеть, начинается ли он с https: //, но боюсь, что этот подход небезопасен.

Есть ли свойство, которое можно проверить для проверки HTTPS во время события Page_Load?

Ответы [ 2 ]

27 голосов
/ 29 ноября 2011

Вы ищете Request.IsSecureConnection.

1 голос
/ 29 ноября 2011

Если вы используете IIS 7 (или более позднюю версию) и планируете перенаправить запрос, поступающий на вашу страницу через HTTP-соединение, на HTTPS-соединение, рассмотрите возможность использования IIS URL Rewrite Module .

Вы сможете настраивать решение, а не кодировать его.Например, вы можете настроить правило перенаправления на URL-адрес, например http://my.host.com/my-secure-page.aspx, и перенаправить его на https://my.host.com/my-secure-page.aspx.

. С этим модулем можно сделать гораздо больше, и его прелесть в том, что вы можете это сделать.не касаясь кода приложения.

Подробнее см. Перенаправление HTTP на HTTPS с IIS 7 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...