azure - 身份验证后重定向到 http 时应该是 https
问题描述
这里的起点是 Microsoft 为 ASP.NET Core 提供的标准模板:我使用了 Visual Studio => New Project => .NET Core
=> ASP.NET Core Web Application
然后,我勾选了 HTTPS 支持框并Work or School account
针对现有 Azure AD 实例配置了身份验证。
那么无论我是在本地使用http
还是https
在本地运行它,身份验证期间的重定向 url 总是指向 https - 这正是它应该的样子。
当我将它部署到常规 Azure 应用服务中时,它具有相同的行为,这很好。
但是:如果我从中创建一个 docker 映像并将其部署到具有容器支持的 Azure AppService(在这种情况下基于 Linux),那么身份验证重定向总是与 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 连接(并在此过程中随身携带自己的证书)。
我很确定我在这里忽略了一些东西。
解决方案
查看配置 ASP.NET Core 以使用代理服务器和负载平衡器,讨论的配置可能会帮助您解决HTTP重定向问题。
希望能帮助到你!
推荐阅读
- asp.net-core - 在 IIS 之外托管 .NET Core 应用程序
- c# - 为什么 Directory.GetDirectories 输出与带有 /a:d 的 dir 不同?
- excel - Loop values upto three decimal places within a cell
- asp.net-core-mvc - .Net Core 对视图上显示的数据的授权
- python - 为给定的 Datestamp 创建新的子文件夹并在 python 中复制文件
- c - scanf 将 \n 字符保留在缓冲区中
- c# - .cs 页面未显示正确的字符串
- ios - 如何在 UITabBarController 中使用自定义初始化程序注入依赖项?
- shell - Rsync:如何排除文件夹中除一个特定文件之外的所有文件?
- python - 表单清理方法 vs 模型清理方法 vs 模型字段验证器