MVC RequireHttps весь сайт

Я прочитал предыдущие сообщения об использовании RequireHttpsAttribute для обеспечения отдельных контроллеров:

ASP.NET MVC RequireHttps в производстве только

но есть ли способ применить это ко всему сайту? Из-за моего хоста (discountasp.net) я не могу использовать установку "RequireSSL IIS".

62
задан Community 23 May 2017 в 12:10
поделиться

3 ответа

В итоге я использовал IIS URL Rewrite 2.0, чтобы заставить сайт перейти на HTTPS. Этот код в web.config делает трюк:

  <system.webServer>
    <!-- This uses URL Rewrite 2.0 to force the entire site into SSL mode -->
    <rewrite xdt:Transform="Insert">
      <rules>
        <rule name="Force HTTPS" enabled="true">
          <match url="(.*)" ignoreCase="false" />
          <conditions>
            <add input="{HTTPS}" pattern="off" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
22
ответ дан 24 November 2019 в 16:33
поделиться

Вы всегда можете добавить проверку на уровне приложения в свой global.asax

protected void Application_BeginRequest(Object sender, EventArgs e)
{
   if (!HttpContext.Current.Request.IsSecureConnection)
   {
    Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"]
                                 + HttpContext.Current.Request.RawUrl);
   }
}
19
ответ дан 24 November 2019 в 16:33
поделиться

Вы можете использовать базовый класс для всех своих контроллеров и украсить его атрибутом require ssl.

-2
ответ дан 24 November 2019 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: