angular - 在整个 Angular 应用程序中强制 http 到 https 重定向
问题描述
我有一个使用Windows 身份验证的Angular (6)
应用程序。.net Web API
两者都部署到具有有效 SSL 证书的同一开发 Web 服务器。
我试图http to https
在我的所有页面上强制重定向。我已经处理好了 -通过 Kudvenkat 的简单教程重定向到的Web API
所有路径: http ://csharp-video-tutorials.blogspot.com/2016/09/aspnet-web-api-enable-https.html/api
https
创建一个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());
}
但就 Angular 路由(看起来不像https://myurl.com/api
,而是看起来像的路由https://myurl.com/index.html#
)而言,我无法让这些路由重定向到https
. 必须在代码和代码中都指定http to https
重定向是否正常?Web API
Angular
如果没有,也许我们需要将我们的网络服务器配置为仅使用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/等。
推荐阅读
- css - 复制维度css样式添加空格,如何解决?
- databricks - Databricks cli 身份验证失败
- javascript - 隐藏所有id不是所选值的tr
- php - 使用正则表达式拆分未包含在 div 或 Table 中的段落
- java - JSON-Binding API - 反序列化多态对象
- elasticsearch - elasticsearch 6.8 - 通过将嵌套字段与文档中的另一个字段进行比较来过滤
- asp.net - 将字体添加到 4.8-windowsservercore-ltsc2019 图像
- r - 替换为 na 的值,仍然显示在 summary() 中
- java - JAVA RMI如何获取客户端调用方法的参数
- ios - Ionic WKWeabView 打破 iOS 上的模板