[英]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的簡單教程重定向到https
: http ://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.