在 .NET.NET Aspire 中允许不安全的传输

从 .NET.NET Aspire 预览版 5 开始,如果 applicationUrl 配置了不安全的传输(非 TLS http)协议,应用主机将崩溃。 这是一项安全功能,用于防止意外泄露敏感数据。 但是,在某些情况下,可能需要允许不安全的传输。 本文介绍如何在 .NET.NET Aspire 项目中允许不安全的传输。

症状

运行配置了不安全传输协议的 applicationUrl.NET.NET Aspire 项目时,可能会看到以下错误消息:

The 'applicationUrl' setting must be an https address unless the
'ASPIRE_ALLOW_UNSECURED_TRANSPORT' environment variable is set to true.

This configuration is commonly set in the launch profile.

如何允许不安全的传输

若要允许 .NET.NET Aspire中的不安全传输,请将 ASPIRE_ALLOW_UNSECURED_TRANSPORT 环境变量设置为 true。 当 applicationUrl 配置不安全的传输协议时,此环境变量用于控制应用主机的行为:

export ASPIRE_ALLOW_UNSECURED_TRANSPORT=true

或者,可以通过启动配置文件(launch profile)来控制这一点,因为它使得每个配置文件能够配置环境变量。 为此,请考虑 launchSettings.json 文件中的以下示例设置:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "profiles": {
    "https": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:15015;http://localhost:15016",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "DOTNET_ENVIRONMENT": "Development",
        "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:16099",
        "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:17037"
      }
    },
    "http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "http://localhost:15016",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "DOTNET_ENVIRONMENT": "Development",
        "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16099",
        "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038",
        "ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true"
      }
    }
  }
}

前面的示例显示了两个配置文件,httpshttphttps 配置文件配置有安全传输协议,而 http 配置文件配置了不安全的传输协议。 ASPIRE_ALLOW_UNSECURED_TRANSPORT 环境变量设置为 http 配置文件中的 true,以允许不安全的传输。