我们已经分发了由客户在内部托管的Web应用程序,我们希望删除不使用https即可启动它的选项。我们仅允许使用appsettings.json中的“ kestrel”部分进行配置,并且我们基本上希望该应用在启动时抛出错误,然后在配置中没有有效的https-endpoint的情况下将其关闭。
我们已经有了UseHttpsRedirection(),它会发出警告,但不会强制终止应用程序。
答案 0 :(得分:0)
您可以创建一个自定义中间件,该中间件在HTTP上启动时将失败:
public class RequireHttpsMiddleware
{
private readonly RequestDelegate _next;
public RequireHttpsMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
if (!context.Request.IsHttps)
{
throw new Exception("Not allowed to run application on HTTP.");
}
await _next(context);
}
}