微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# UWP FluentFTP 证书验证

如何解决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 举报,一经查实,本站将立刻删除。