Подтвердить что ты не робот

Как использовать HTTPS в приложении ASP.Net

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

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

4b9b3361

Ответ 1

  • Сначала получите или создайте сертификат

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

  • Добавить тег secureWebPages в web.config

    <configuration>
        ...
        <secureWebPages enabled="true">
            ...
        </secureWebPages>
        ...
        <system.web>
            ...
        </system.web>
    </configuration>
    
  • Добавьте файлы и каталоги, которые будут использоваться для протокола 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> 
    

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

Ответ 2

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

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

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

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

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

Ответ 3

После того, как вы установили/установили 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" ).

Ответ 4

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

Я бы рекомендовал использовать 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);

Ответ 5

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

Ответ 6

Можем ли мы сделать то же самое с помощью простой записи cname в вашей панели управления DNS?

Домен входа в Cname: *.example.com Пункт назначения: https://www.example.com TLL: 3600