Как использовать HTTPS в приложении ASP.Net - PullRequest
44 голосов
/ 12 февраля 2009

Я хочу использовать HTTPS в своем веб-приложении ASP.NET, но только для страницы Login.aspx.

Как это можно сделать?

Ответы [ 5 ]

30 голосов
/ 04 января 2011
  1. Сначала получите или создайте сертификат

  2. Получить модуль SecureWebPageModule можно из http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Ver. Инструкции по настройке можно найти в статье.

  3. Добавление тега secureWebPages в web.config

    <configuration>
        ...
        <secureWebPages enabled="true">
            ...
        </secureWebPages>
        ...
        <system.web>
            ...
        </system.web>
    </configuration>
    
  4. Добавление файлов и каталогов для использования по протоколу https:

    <secureWebPages enabled="true">
        <file path="Login.aspx" />
        <file path="Admin/Calendar.aspx" ignore="True" />
        <file path="Members/Users.aspx" />
        <directory path="Admin" />
        <directory path="Members/Secure" />
    </secureWebPages> 
    

Надеюсь, это поможет!

12 голосов
/ 12 февраля 2009

Вы можете опубликовать свой собственный сертификат или приобрести его. Предостережение заключается в том, что его покупка, в зависимости от компании, означает, что он уже хранится в хранилище сертификатов для большинства браузеров. Ваша собственная публикация не будет, и ваши пользователи должны будут сделать дополнительный шаг для установки вашего сертификата.

Вы не говорите, какую версию IIS вы используете, но вот несколько подробных инструкций для IIS 6

Вы можете купить относительно дешевые сертификаты или пойти с большими мальчиками (verisign) и получить расширенный сертификат проверки, который меняет адресную строку в IE, зеленым. Это также довольно строгий процесс проверки, требующий времени.

Если вы знаете всех пользователей, которые будут заходить на ваш сайт, проблем с установкой нет. Однако для открытого веб-сайта с анонимными пользователями (которых вы не знаете), вероятно, лучше приобрести тот, который уже есть в большинстве основных браузеров, хранилищ сертификатов.

Вы можете включить SSL через IIS и требовать его только для своей страницы login.aspx, а не для остальных.

10 голосов
/ 12 февраля 2009

После того, как вы установили / установили SSL, вы хотите сделать какое-то перенаправление на странице входа в систему по адресу https: //. Затем на любую страницу, на которую пользователь отправляется после проверки, это может быть просто http: //.

Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    If Request.IsSecureConnection = False And _
        Not Request.Url.Host.Contains("localhost") Then

        Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"))
    End If
End Sub

Это может быть проще реализовать на главной странице или только на всех страницах, которые вам требуются https. Выбрав «localhost», вы избежите ошибки в своей среде тестирования (если только у вашего тестового сервера нет другого имени, кроме проверки: «mytestservername»).

5 голосов
/ 09 февраля 2013

отказ от ответственности - я принимал участие в разработке этого проекта

Я бы рекомендовал использовать http://nuget.org/packages/SecurePages/. Это дает вам возможность защитить определенные страницы или использовать Regex для определения совпадений. Это также принудительно заставит все страницы, не соответствующие Regex или прямо указанные обратно, HTTP.

Вы можете установить его через NuGet: Install-Package SecurePages

Документы здесь: https://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages

Простое использование:

SecurePagesConfiguration.Urls.AddUrl("/cart");

или

SecurePagesConfiguration.Urls.AddRegex(@"(.*)account", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);
3 голосов
/ 12 февраля 2009

Вы можете включить HTTPS в конфигурации IIS, но он не будет «безопасным», если вы не приобретете SSL-сертификат и не подключите его к IIS. Убедитесь, что у вас открыт порт 443.

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