如何在http和https的同时运行Angularjs webapi?

时间:2017-06-15 10:55:32

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

我想为基于web的angularJS项目提供http和https支持。如果需要,它将以https和http。

的形式工作

我使用https运行了网络API。所有请求和响应操作都是安全的。

如何使用http和https项目运行(Web和Web API项目)?

我在何处以及如何管理/重定向可能来自http或https的请求?

我认为有些事情会帮助你解决这个问题。在Web API的配置选项中,只允许一个值作为project / url。 (看图)

在项目的Web方面,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

网络媒体资源 Project Url

config.js (网络方面)

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

1 个答案:

答案 0 :(得分:0)

您应该更改项目属性(Ctrl + W,P)&#39; SSL Enabled&#39;为真。在此之后,您将能够同时请求http和https。 Project Properties