在 Appharbor 上强制使用 HTTPS

Force HTTPS on Appharbor

相关问题:here - here

我在 appharbor 上部署了一个 ASP.NET 应用程序。手动导航到它的 https:// url 工作正常,但我想 ONLY 使用 HTTPS。也就是说,如果我收到 HTTP 请求,则重定向到 HTTPS。

我知道有两种实现方法:(1) 使用 web.config ,由于 X-Forwarded-Proto header 被剥离load-balancer on appharbor (?) 或 (2) 制作自定义 httpattribute,如图 here

不幸的是,这两种方法都不适合我 - 都给了我一个重定向循环:(。我能找到的所有答案都相当陈旧,appharbor/asp.net 上有什么我应该改变的吗知道吗?

提前致谢。

您是否在应用程序中使用 MVC?该属性是为它设计的。

如果只是普通 ASP.NET 你可以使用 HTTP Modules or Global.asax 来达到同样的效果。

RequireHttpsAttribute by Rune 应该可以。我在 AppHarbor 上使用 ServiceStack,但基于我从 Rune 的代码中使用的属性。至今仍在使用。

AppHb 的 load-balancer 将设置 X-Forwarded-Proto header 以匹配传入的协议方案(http 或 https),因为来自负载均衡器的流量被转发到应用程序的 IIS 实例作为 HTTP(因此原始方案丢失)。