如果未配置https,则启动失败

时间:2019-03-29 12:41:35

标签: asp.net-core

我们已经分发了由客户在内部托管的Web应用程序,我们希望删除不使用https即可启动它的选项。我们仅允许使用appsettings.json中的“ kestrel”部分进行配置,并且我们基本上希望该应用在启动时抛出错误,然后在配置中没有有效的https-endpoint的情况下将其关闭。

我们已经有了UseHttpsRedirection(),它会发出警告,但不会强制终止应用程序。

1 个答案:

答案 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);
    }
}