2017-06-15 18 views
0

我想爲基於web的angularJS項目提供http和https支持。如果要求,它將以https和http的形式工作。如何在與http和https同時運行Angularjs webapi?

我用https運行了web API。所有請求和響應操作都是安全的。

如何使用http和https運行項目(Web和Web API項目)?

我在哪裏以及如何管理/重定向可能以http或https形式出現的請求?

有些事情我認爲會幫助你解決這個問題。在Web API的配置選項中,只允許一個值作爲項目/ URL。 (看圖)

在項目的網絡端,url和端口變體可以被高度改進和獨立定義。所以我在那裏沒有問題。

RequireHttpsAttribute(如果有使用)

public override void OnAuthorization(HttpActionContext actionContext) 
    { 
     //if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps) 
     //{ 
     // actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Found); 
     // actionContext.Response.Content = new StringContent("<span> Http yerine artık https kullanılıyor.</span>"); 

     // UriBuilder uriBuilder = new UriBuilder(actionContext.Request.RequestUri); 

     // uriBuilder.Scheme = Uri.UriSchemeHttps; 
     // uriBuilder.Port = 44332; 

     // actionContext.Response.Headers.Location = uriBuilder.Uri; 

     //} 
     //else 
     //{ 
     // base.OnAuthorization(actionContext); 
     //} 

    } 

的WebAPI屬性 Project Url

Web屬性 Project Url

的conf ig.js(網絡側)

//serviceBase: "http://localhost:61456/", 
//servicePort: "61456", 
serviceBase: "https://localhost:44332/", 
servicePort: "44332" 

回答

0

你應該改變項目性質(按Ctrl + W,P) '啓用SSL' 爲真。在此之後,您可以同時請求http和https。 Project Properties

+0

if ssl disabled,not work https properly。我需要他們兩個,http和https同時。 – OkurYazar

+0

你是什麼意思同時?如果啓用ssl,http將繼續工作。只需打開瀏覽器並通過http地址進行請求。 –

+0

對我感到羞恥:)謝謝船長。 – OkurYazar