簡體   English   中英

在整個Angular應用中強制將HTTP重定向到https

[英]Force http to https redirect across entire Angular app

我有一個使用.net Web API和Windows身份驗證的Angular (6)應用程序。 兩者都部署到具有有效SSL證書的同一開發Web服務器上。

我試圖在所有頁面上強制將http to https重定向http to https 我已經處理了Web API一面-所有/api路徑都可以通過Kudvenkat的簡單教程重定向到httpshttp ://csharp-video-tutorials.blogspot.com/2016/09/aspnet-web-api-enable- https.html

創建一個RequireHttpsAttribute.cs類:

using System;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;

namespace api
{
    public class RequireHttpsAttribute : AuthorizationFilterAttribute
    {
        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
                    ("<p>Use https instead of http</p>", Encoding.UTF8, "text/html");

                UriBuilder uriBuilder = new UriBuilder(actionContext.Request.RequestUri);
                uriBuilder.Scheme = Uri.UriSchemeHttps;

                uriBuilder.Port = 443;

                actionContext.Response.Headers.Location = uriBuilder.Uri;
            }
            else
            {
                base.OnAuthorization(actionContext);
            }
        }
    }
}

WebApiConfig.cs:

public static void Register(HttpConfiguration config)
{
    config.Filters.Add(new RequireHttpsAttribute());
}

但據角路線(路線不樣子https://myurl.com/api ,而是像https://myurl.com/index.html# ),我不能讓這些重定向到https Web API代碼和Angular代碼中都必須將http to https重定向http to https重定向是否正常?

如果不是,也許我們需要將我們的網絡服務器配置為僅使用https

我通過在web.config中使用URL重寫來做到這一點,如下所示:

  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

這應該處理WebApi和MVC / HTML / etc。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM