2013-07-07 6 views
0

Как заставить ASP.NET Web.API генерировать ссылки HTTPS?Force HTTPS в генерации маршрута

В моем приложении MVC, я генерация адреса в воззрениях такого образом @Url.HttpRouteUrl("DefaultApi", new { controller = "People" })

Но если веб-приложение доступно через HTTP, ссылки будут использовать схему HTTP. Я хочу заставить HTTPS подключаться к веб-API.

Я знаю, что есть примеры RequireHttpsAttribute в Интернете, но эти примеры просто отказывают в подключении, если HTTPS требуется и не предоставляется, что в порядке. Я хочу, чтобы даже если приложение было доступно через HTTP, ссылки на веб-API должны быть сгенерированы с помощью схемы HTTPS.

Cheers.

ответ

1

Вы можете использовать RouteUrl метод, который позволяет так определить протокол и, таким образом, сформировать абсолютный URL с помощью этого протокола:

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

Обратите внимание на значение httproute = "" маршрута, чтобы указать, что мы хотим, чтобы создать маршрут для Контроллер Web API, а не контроллер MVC.

+0

«XMLHttpRequest не может загрузить https: // localhost/MyWebAPI/api/People. Происхождение http: // localhost не разрешено Access-Control-Allow-Origin». -> Я не думал в этом: P Спасибо. – vtortola