这里的起点是Microsoft的ASP.NET Core标准模板:我使用了Visual Studio => New Project => .NET Core
=> ASP.NET Core Web应用程序
然后,我勾选了HTTPS支持框,并针对现有的Azure AD实例配置了Work or School account
身份验证。
然后,无论我使用http
还是https
在本地运行,身份验证过程中的重定向URL始终都指向https-完全正确。
当我将其部署到常规的Azure App Service中时,它具有相同的行为,这很好。
但是::如果我从中创建一个docker映像并将其部署到具有容器支持(在这种情况下基于linux)的Azure AppService,则身份验证重定向将始终针对http,即真的不是我想要的。
作为参考,这是用于构建映像的Dockerfile:
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY HttpsTest/HttpsTest.csproj HttpsTest/
RUN dotnet restore HttpsTest/HttpsTest.csproj
COPY . .
WORKDIR /src/HttpsTest
RUN dotnet build HttpsTest.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish HttpsTest.csproj -c Release -o /app
FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "HttpsTest.dll"]
请注意,因为我正在使用Azure App Service终止SSL连接(并随其携带自己的证书),所以我没有在容器内摆弄自定义证书。
我很确定这里有些地方可以忽略。
答案 0 :(得分:4)
看看Configure ASP.NET Core to work with proxy servers and load balancers,所讨论的配置可以帮助您解决 HTTP 重定向问题。
希望有帮助!