在路由生成中强制HTTPS

时间:2013-07-07 16:42:15

标签: ssl https asp.net-web-api

如何强制ASP.NET Web.API生成HTTPS链接?

在我的MVC应用中,我以这种方式@Url.HttpRouteUrl("DefaultApi", new { controller = "People" })

在视图中生成网址

但是如果通过HTTP访问Web应用程序,链接将使用HTTP架构。我想强制HTTPS连接到Web API。

我知道互联网上有RequireHttpsAttribute的例子,但是这些例子只是在需要HTTPS但没有提供时拒绝连接,没关系。我想要的是,即使通过HTTP访问应用程序,也可以使用HTTPS架构生成指向Web API的链接。

干杯。

1 个答案:

答案 0 :(得分:1)

您可以使用RouteUrl方法,它允许您指定协议,从而使用此协议生成绝对URL:

@Url.RouteUrl(
    "DefaultApi", 
    new { httproute = "", controller = "People" }, 
    "https"
)

注意httproute = ""路由值,表示我们要为Web API控制器而不是MVC控制器生成路由。