在 .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
配置不安全的传输协议时,此环境变量用于控制应用主机的行为:
或者,可以通过启动配置文件(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"
}
}
}
}
前面的示例显示了两个配置文件,https
和 http
。
https
配置文件配置有安全传输协议,而 http
配置文件配置了不安全的传输协议。
ASPIRE_ALLOW_UNSECURED_TRANSPORT
环境变量设置为 http
配置文件中的 true
,以允许不安全的传输。