识别ASP.NET Web API DelegatingHandler中使用的https加密类型

时间:2018-04-11 16:01:00

标签: asp.net asp.net-web-api2 middleware

我目前正在扩展ASP.NET Web API应用程序的日志记录部分,但是我无法确定正在使用的加密方案。由于此记录是通过DelegatingHandler完成的,因此我只能访问通过中间件链向我提供的HttpRequestMessageHttpResponseMessage

如何识别ASP.NET Web API DelegatingHandler中使用的https加密类型(SSL 3.0,TLS 1.0,TLS 1.3等..)?

1 个答案:

答案 0 :(得分:0)

我不确定您是询问请求是https还是http。如果那就是你要找的东西,你需要httpRequestMessage.RequestUri.Scheme

然而,听起来您正在寻找有关证书本身的更多信息。有关SSL证书的信息实际上并不是单个请求的属性,据我所知,无法从HttpRequestMessageHttpResponseMessage访问。它更像是应用程序和机器配置的属性。

如果您想获取有关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查找证书信息。然后,您将可以访问各种属性。

希望有所帮助!