c# - 如何在使用 ASP.NET Core 中间件健康检查创建的健康检查端点上选择性地强制实施 HTTPS?
问题描述
我已经在 MVC 应用程序中使用中间件配置了运行状况检查,但出于安全原因,我被要求在运行状况端点上强制执行 https 。由于不同的原因,我不能在整个服务中强制执行它,所以我想知道是否有一种机制可以选择性地对健康端点执行此操作。虽然可以使用控制器来做到这一点,但我似乎无法为中间件创建的端点实现它。
有没有内置的方法来实现这一点?我可以创建某种自定义中间件作为包装器来实现它吗?
我查看了 EndpointBuilders、约定、RequireHttps 等,但找不到任何东西。
解决方案
可以通过在 Startup#Configure 中为 https 指定端口号来解决
app.UseEndpoints(endpoints =>
{
// ... other end-points here
endpoints.MapHealthChecks("/readiness").RequireHost("*:5001", "*:443");
});
在我的计算机上使用 Kestrel 进行测试和验证,默认使用端口 5000 用于 http,5001 用于 https。如果您的生产环境不使用端口 443,您可以删除, "*:443"
.
推荐阅读
- node.js - 是否有任何格式字符串可以直接从 GraphicsMagick 对象中读取 Caption[2,120] 数据?
- cassandra - 如何在 cassandra 查询语言中使用 DATE 数据类型编写查询?
- snowflake-cloud-data-platform - 雪花复制到不从 blob 存储中清除的语句中
- java - (TensorflowLite/Android) Unable to instantiate activity ComponentInfo
- vue.js - 如何使用 vue 和 vue2-leaflet 获取地理位置?
- ios - 如何在没有 iPhone 的情况下创建配置文件
- vba - 使用“First Name Last Name”回复电子邮件,而不是“Last Name, First Name”,使用特定字体
- python - PyQt QGridLayout 删除除顶行之外的所有内容
- python - 根据 ID 和月份聚合数据,具体取决于另一列(前与后)
- html - 在 HTML 表格中,如何在单元格级别覆盖字体大小(已在行级别设置)?