如何强制 ASP.NET Web.API 生成 HTTPS 链接?
在我的 MVC 应用程序中,我以这种方式在 View 中生成 url @Url.HttpRouteUrl("DefaultApi", new { controller = "People"})
但是如果通过 HTTP 访问 Web 应用程序,则链接将使用 HTTP 架构。我想强制使用 HTTPS 连接到 Web API。
我知道互联网上有 RequireHttpsAttribute
的示例,但如果需要但未提供 HTTPS,这些示例只是拒绝连接,这很好。我想要的是,即使通过 HTTP 访问应用程序,也可以使用 HTTPS 模式生成指向 Web API 的链接。
干杯。
最佳答案
您可以使用 RouteUrl
允许您如此指定协议(protocol)并因此使用该协议(protocol)生成绝对 URL 的方法:
@Url.RouteUrl(
"DefaultApi",
new { httproute = "", controller = "People" },
"https"
)
注意 httproute = ""
路由值表明我们要为 Web API Controller 而不是 MVC Controller 生成路由。
关于ssl - 在路由生成中强制使用 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17514064/