如何解决C# UWP FluentFTP 证书验证
我正在使用 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 举报,一经查实,本站将立刻删除。