Я хочу использовать HTTPS в своем веб-приложении ASP.NET, но только для страницы Login.aspx.Как использовать HTTPS в приложении ASP.Net
Как это можно сделать?
Я хочу использовать HTTPS в своем веб-приложении ASP.NET, но только для страницы Login.aspx.Как использовать HTTPS в приложении ASP.Net
Как это можно сделать?
Вы можете включить HTTPS в своей конфигурации IIS, но он не будет «безопасным», если вы не приобретете SSL-сертификат и не подключите его к IIS. Убедитесь, что порт 443 открыт.
Вы можете опубликовать собственный сертификат или приобрести его. Суть в том, что покупка в зависимости от компании означает, что она уже хранится в хранилище сертификатов для большинства браузеров. Самостоятельно опубликовать его не будет, и ваши пользователи должны будут выполнить дополнительный шаг по установке вашего сертификата.
Вы не говорите, какая версия IIS вы используете, но here are some detailed instructions for IIS 6
Вы можете приобрести относительно дешевые сертификаты или вы можете пойти с большими мальчиками (Verisign) и получить расширенную справку проверки, которая превращает ваш адресная строка в IE, зеленая. Это также довольно строгий процесс проверки и требует времени.
Если вы знаете всех пользователей, которые будут попадать на ваш сайт, нет никаких проблем с установкой ваших собственных. Однако для открытого веб-сайта с анонимными пользователями (который вы не знаете), вероятно, лучше купить тот, который уже находится в большинстве основных браузеров, хранилища сертификатов.
Вы можете включить SSL через IIS и потребовать его только для своей страницы login.aspx, а не для остальных.
После того, как вы установили/установили 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»).
Сначала получить или создать сертификат
Получить модуль 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>
Надеется, что это помогает!
Проект SecureWebPageModule был переименован в «SecuritySwitch», и его можно найти на странице http://code.google.com/p/securityswitch/](http://code.google.com/p/securityswitch/) –
отказ от ответственности - я принимал участие в разработке этого проекта
Я бы рекомендовал использовать http://nuget.org/packages/SecurePages/ Это дает возможность обеспечить определенные страницы или использовать Regex для определения соответствия. Он также заставит все страницы не соответствовать Regex или напрямую указанному HTTP.
Вы можете установить его с помощью NuGet: Install-Package SecurePages
Docs здесь: 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);
Спасибо для отправки ответа! Обязательно внимательно прочитайте [FAQ по самопомощи] (http://stackoverflow.com/faq#promotion). Также обратите внимание, что * требуется *, что вы публикуете отказ от ответственности каждый раз, когда вы ссылаетесь на свой собственный сайт/продукт. –
я не знаю, как перенаправить страница входа с HTTPS: // это моя проблема. спасибо –
Добавить код Guiness на страницу, содержащую элемент управления входа. Я бы, вероятно, переместил его в начало страницы_load или в OnInit, так как это сохраняет обработку всего остального, но это будет хорошо работать. –