获取当前请求所用的Kestrel服务器证书(无反射方法)
获取Kestrel多端点场景下当前请求的服务器证书(无反射/内部类依赖)
直接使用ASP.NET Core公开的ITlsConnectionFeature接口即可实现,无需依赖内部私有成员:
var tlsFeature = HttpContext.Features.Get<ITlsConnectionFeature>(); if (tlsFeature != null && tlsFeature.IsTls) { X509Certificate2 localCertificate = tlsFeature.SslStream.LocalCertificate as X509Certificate2; // 后续处理证书逻辑 }
关键点
ITlsConnectionFeature是框架官方公开的特性,通过HttpContext.Features即可获取,无需强转内部实现类。SslStream是该接口的公开属性,其LocalCertificate成员直接返回当前TLS连接使用的服务器证书。- 增加
IsTls和空值判断,覆盖非HTTPS请求的场景,避免运行时异常。
内容的提问来源于stack exchange,提问作者OwnageIsMagic
相关产品推荐
相关产品推荐

