HTTP-запросы ядра ASP.Net никогда не доходят до моего API и не будут перенаправлять на HTTPS - PullRequest
0 голосов
/ 24 сентября 2019

Когда я вызываю свой основной API asp.net с помощью HTTP-URL, запрос никогда не достигает моего приложения, я добавил промежуточное программное обеспечение для проверки этого, и запрос никогда не попадает в контекст.Хотя я настроил перенаправление https, как я покажу ниже, Http-запрос не перенаправляет на https.Но когда я использую HTTPS URL, запрос теперь попадает в мое приложение.Я хочу иметь возможность вызывать мой API из URL Http, после чего он перенаправляется на https.

Я перепробовал все, что видел в Интернете.Я попытался включить перенаправление HTTPS, но ничего не получалось.Вот как выглядит перенаправление https:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
    if (env.IsDevelopment()) {
        app.UseDeveloperExceptionPage();
    }
    else {
        app.ConfigureExceptionMiddleware();
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();
    app.UseMvc();
}

В методе configureServices:

services.AddHttpsRedirection(options => {
    options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect;
    options.HttpsPort = 44382;
});

launchSettings.json

 "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53471",
      "sslPort": 44382
    }
  },

Код не работаети не включает перенаправление.Это только позволяет мне получить доступ к моему приложению через HTTPS, но перенаправление не сделано.Может кто-нибудь сказать мне, как я могу позвонить по Http перенаправить на https?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Я думаю, что вам не хватает порта HTTPS, поэтому ваше приложение должно было записать сообщение об ошибке "Failed to determine the https port for redirect."

Вы можете настроить порт одним из следующих способов.

  • Установить HttpsRedirectionOptions.HttpsPort
  • Установить ASPNETCORE_HTTPS_PORT переменную среды (перезагрузите компьютер для отражения изменений)
  • Вы можете настроить https_port порт вНапример, файл appsettings.json:

      {
         "https_port": 443
      }
    
  • Установить URL-адрес HTTPS в файле launchsettings.json

Надеюсь, что один из этих методов решит вашу проблему!

0 голосов
/ 24 сентября 2019

Причиной этой проблемы было то, что у меня в Launch settings.json было два профиля, и я выбрал неправильный профиль для запуска приложения.Выбор профиля (в настройках проекта) с атрибутом: «имя_команды»: «Проект» решил эту проблему.Ребята в комментариях к моему ответу привели меня на правильный путь, чтобы решить эту проблему.

...