ASP.NET Core 6 http 不要自動重定向到 https 的方式

在 ASP.NET Core 6 啟動的時候如果開啟 http 連結,會自動重定向到 https 網址。但是在開發過程中如果不想設定憑證,其他程式使用 API 呼叫 https 就會出現問題,但是使用 http 又會再被自動跳轉到 https...

不要設定 https 網址

預設在建立完 ASP.NET Core 6 專案後在 Properties 資料夾內會有 launchSettings.json 檔案,可以在裡面看到 applicationUrl 的設定指向了一個 https 和 http 網址,只要把 https 的網址拿掉就不會跳轉到 https 了
    
{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "MyWebApplication": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "https://localhost:7253;http://localhost:5194",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
  }
}
    

註:上面設定檔的專案名稱為 MyWebApplication

UseHttpsRedirection

不過其實上面的方式是治標不治本,其實重定向根本不是因為上面的原因,而是因為在 Program.cs 中有使用 UseHttpsRedirection ,這才是導致自動重定向到 https 的根本原因:
    
var app = builder.Build();

app.UseHttpsRedirection();

app.Run();
    

所以在開發時不想要自動重定向該怎麼辦?只要把上面第三行註解掉就可以了!

參考資料:
Enforce HTTPS in ASP.NET Core

留言