ServicePointManager.ServerCertificateValidationCallback和X509Certifcate2

时间:2019-03-25 14:22:41

标签: c# x509certificate x509certificate2

我正在将我的自定义验证器用于ssl证书。 该方法使用X509Certificate,而不使用X509Certifcate2。我想显示发行人和发行人的用户友好打印。

我想使用:     certificate2.GetNameInfo(X509NameType.SimpleName,true)。 我知道我可以将X509Certifcate转换为X509Certificate2。

ServicePointManager.ServerCertificateValidationCallback += OnCertificateValidationCallback

bool OnCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
 if (!(certificate is X509Certificate2 certificate2))
  {
     certificate2 = new X509Certificate2(certificate);
  }
}

MSDN说,如果发生以下情况,它可能会引发异常:

  1. 证书文件不存在。
  2. 证书无效。
  3. 证书的密码不正确。

何时证书将是X509Certificate类型,如果可以,我是否可以信任此代码进行转换而不会引发异常?

0 个答案:

没有答案