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 (将#修改为@)