C# 在APS.NET Core 2应用程序中使用(并强制)HTTPS

C# 在APS.NET Core 2应用程序中使用(并强制)HTTPS,c#,https,url-rewriting,asp.net-core-2.0,hsts,C#,Https,Url Rewriting,Asp.net Core 2.0,Hsts,我正在研究在ASP.NET Core 2应用程序上实现(和强制实施)HTTPS,我看到了,但这让我感到困惑。它提到了两种方法:使用requireHttpAttribute或使用URL重写,但在页面开头的警告中,他们提到不要使用requireHttpAttribute,因为它正在执行重定向,但URL重写不也是这样做的吗?因此,即使它们接收到“敏感信息”(如文档页面中的警告所述),我们是否能够将它们中的任何一个用于Web API 另外,我也听说过HST,我做了一些研究,但在我看来,ASP.NET核心

我正在研究在ASP.NET Core 2应用程序上实现(和强制实施)HTTPS,我看到了,但这让我感到困惑。它提到了两种方法:使用
requireHttpAttribute
或使用URL重写,但在页面开头的警告中,他们提到不要使用
requireHttpAttribute
,因为它正在执行重定向,但URL重写不也是这样做的吗?因此,即使它们接收到“敏感信息”(如文档页面中的警告所述),我们是否能够将它们中的任何一个用于Web API

另外,我也听说过HST,我做了一些研究,但在我看来,ASP.NET核心中并没有针对HST的标准实现。我偶然发现了一些NuGet软件包,但我无法从更“官方”的提供商那里找到


您能帮我理解一下吗?

您的困惑可能在于本文的目标是关于非WebAPI应用程序。因此,警告-不适用于WebAPI。不要对WebAPI使用这两种方法中的任何一种

  • 连接到http://example.com上的应用程序(通过在浏览器中键入url)的用户应重定向到https://example.com。这可以使用两种方法中的一种来完成

  • 连接到的应用程序(如web应用程序)应该而不是被重定向到。端口80应关闭或返回状态400(对于和,将这些应答中的状态代码更改为400)

用户无法负担技术安全细节。然而,开发人员应该充分意识到这一点,并且可以直接连接到https,而无需任何重定向


考虑到您关于HST“官方”支持的第二句话,请查看asp.net核心文档。公平地说,在撰写本文的几个月前(作为其中的一部分),还没有太多的文档。

您应该测试它们两个,看看它们在做什么。如果他们正在进行重定向(这似乎是可能的),那么是的,警告将适用于他们两人。谢谢@Tewr的回答。如果您能提供您提到的第二个项目(连接的应用程序)的示例,并实际关闭端口80或返回400状态,我将不胜感激。谢谢你如何做这是一个不同的主题——并且有很好的文档记录。是核心托管的起点。但在任何情况下,在生产设置中,我都会使用反向代理,如nginx或IIS-只要谷歌了解如何在其中任何一个上配置端口,就会有数千个指南。如何设置永久400是一个不太常见的用例,请编辑我的答案,并链接到其他一些问题