ssl - 在路由生成中强制使用 HTTPS

标签 ssl https asp.net-web-api

如何强制 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/

相关文章:

ssl - OSCP 请求随机出现在 webpagetest.org 结果中

java - 网络应用程序中的慢 Java SSL

android - react native : Android WebView returns blank screen for some websites and some devices

c# - 在 Web API 中将包含 JToken 的对象序列化为 XML 时出现循环引用异常

rest - 使用 MVC Web API 的 RESTful api 教程系列

c# - Web API get 上的 405 错误(方法不允许)

swift - SocketIOClient : Handling event: error with data: ["Invalid SSL certificate"]

amazon-web-services - 通过 ACM 在 AWS 上的单实例 tomcat 上配置 SSL 证书

ssl - 浏览器是否会显示非 443 端口的 "Connection untrusted"错误

web-services - 如何在 postman 中测试https rest webservice