问题描述
我正在使用 FluentFTP 库编写 UWP 应用程序。
我写了下面的代码来验证服务器的证书是否有效
private async void SslValidation(FtpClient c,FtpSslValidationEventArgs e)
{
CertificateControl ctrl = new CertificateControl();
await ctrl.LoadTrustedCertificates();
foreach (X509Certificate data in ctrl.Trusted)
{
if(data.GetRawCertDataString() == e.Certificate.GetRawCertDataString()) //HERE MAKES ERROR
{
e.Accept = true;
return;
}
}
if (e.PolicyErrors == SslPolicyErrors.None)
{
e.Accept = true;
}
else
{
e.Accept = false;
}
}
当我尝试比较受信任的证书和收到的证书时,这会导致以下错误
抛出异常:System.Security.Cryptography.X509Certificates.dll 中的“System.Security.Cryptography.CryptographicException” System.Security.Cryptography.X509Certificates.dll 中出现“System.Security.Cryptography.CryptographicException”类型的异常,但未在用户代码中处理 m_safeCertContext 是无效句柄。
我改变了 if 阶段来比较 RawByte、Hash 没有解决错误。
我发现当证书没有我试图获取的数据时会发生此错误,但我检查了受信任证书和给定证书都不为空。
为什么会发生这种情况,我该如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)