ASP.Net Переменная среды Core docker для деактивации перенаправления SSL

#c# #asp.net #docker #asp.net-core

#c# #asp.net #docker #asp.net-ядро

Вопрос:

существует ли также переменная среды для деактивации перенаправления SSL, например, для установки других переменных ASPNETCORE в контейнере docker? аналогично этим:

   - ASPNETCORE_ENVIRONMENT=Production
  - ASPNETCORE_URLS=https:// :443;http:// :80
  - ASPNETCORE_Kestrel__Certificates__Default__Password=<pass>
  - ASPNETCORE_Kestrel__Certificates__Default__Path=/usr/<path>/aspnetapp.pfx
 

Заранее спасибо.

Ответ №1:

В ASP.NET Основное перенаправление HTTPS обычно настраивается в коде. Фактически, это рекомендуемый способ сделать это в производственных веб-приложениях.

Таким образом, самым простым способом активации / деактивации, вероятно, было бы привязать этот код к типу среды, в которой вы его создаете.

Итак, в Configure методе вашего Startup класса вы можете сделать что-то вроде этого:

 if (env.IsDevelopment())
{
    // Just don't.
}
else
{
    app.UseHttpsRedirection();
    app.UseHsts();
} 
 

В противном случае вы можете ввести свою собственную переменную и прочитать ее значение во время настройки:

 var httpsRedirectEnabled =
    Environment.GetEnvironmentVariable("ASPNETCORE_CUSTOM_HTTPS_REDIRECT") == "true";

if (httpsRedirectEnabled)
{
    app.UseHttpsRedirection();
    app.UseHsts();
}
 

Имейте в виду, это не лучший способ сравнения строк, но в крайнем случае он сработает.