我目前正在扩展ASP.NET Web API应用程序的日志记录部分,但是我无法确定正在使用的加密方案。由于此记录是通过DelegatingHandler
完成的,因此我只能访问通过中间件链向我提供的HttpRequestMessage
和HttpResponseMessage
。
如何识别ASP.NET Web API DelegatingHandler
中使用的https加密类型(SSL 3.0,TLS 1.0,TLS 1.3等..)?
答案 0 :(得分:0)
我不确定您是询问请求是https还是http。如果那就是你要找的东西,你需要httpRequestMessage.RequestUri.Scheme
。
然而,听起来您正在寻找有关证书本身的更多信息。有关SSL证书的信息实际上并不是单个请求的属性,据我所知,无法从HttpRequestMessage
或HttpResponseMessage
访问。它更像是应用程序和机器配置的属性。
如果您想获取有关SSL证书的信息,可以执行以下操作:
var store = new X509Store(StoreLocation.LocalMachine);
var certificateCollection = store.Certificates.Find(X509FindType.FindByThumbprint, "thumbprint", true);
var certificate = certificateCollection[0];
var version = certificate.Version;
var signatureAlgorithm = certificate.SignatureAlgorithm;
显然,这只是一种方法,你需要做更多的错误处理。一般的想法是,您可能可以通过app.config
访问应用程序使用的证书指纹。如果您使用它,您可以像我上面那样从X509Store
查找证书信息。然后,您将可以访问各种属性。
希望有所帮助!