2013-07-07 75 views
0

如何强制ASP.NET Web.API生成HTTPS链接?在路由生成中强制HTTPS

在我的MVC应用程序,我生成的URL中的意见这种方式@Url.HttpRouteUrl("DefaultApi", new { controller = "People" })

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

我知道在互联网上有RequireHttpsAttribute的例子,但这些例子只是拒绝连接,如果HTTPS是必需的,没有提供,什么是好的。我想要的是,即使通过HTTP访问应用程序,也可以使用HTTPS模式生成到Web API的链接。

干杯。

回答

1

你可以使用RouteUrl方法,它允许你这样指定协议,从而产生与该协议的绝对URL:

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

通知的httproute = ""路线值,表明我们要生成一个路线Web API控制器而不是MVC控制器。

+0

“XMLHttpRequest无法加载https:// localhost/MyWebAPI/api/People.Access http:// localhost不被Access-Control-Allow-Origin允许。 - >我没有想到:P谢谢。 – vtortola