C#学习教程:使用C#.Net通过FTPS(SSL/TLS)传输文件现在它通过常规FTP连接,但现在我们的IT人员希望通过安全的FTPS连接来设置它。他们为我提供了一个*.cr_certificate文件。如果我在记事本中打开该文件,我会看到类似这样的内容(但真正的密钥显然不是foobar)。-----BEGINRSAPRIVATEFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBAR-----ENDRSAPRIVATEKEY----------BEGINCERTIFICATE-----FOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBARFOOBAR-----ENDCERTIFICATE-----如何使用此证书文件连接到FTPS服务器以上载和下载文件?Forgiveme,butI'mnewtoanythingthatinvolvestransferringfilesoveranetwork,安全连接、证书、公钥、私钥等等......等等......我想我想使用FtpWebRequest对象并将EnableSsl属性设置为true但我不确定这个证书文件在哪里发挥作用。如果您使用的是FtpWebRequest类,只需向您的请求设置中添加一些内容即可。请务必包括使用System.Security.Cryptography.X509Certificates;陈述。FtpWebRequest请求=(FtpWebRequest)WebRequest.Create(ftpUrl);request.Credentials=newNetworkCredential(用户名,密码);request.EnableSsl=true;//ServicePointManager.ServerCertificateValidationCallback=ServicePointManager_ServerCertificateValidationCallback;X509Certificatecert=X509Certificate.CreateFromCertFile(@"C:MyCertDirMyCertFile.cer");X509CertificateCollectioncertCollection=newX509CertificateCollection();certCollection.Add(证书);request.ClientCertificates=certCollection;此外,如果您遇到证书生成异常问题,您可能希望实现自己的证书验证回调方法,以与ServicePointManager.ServerCertificateValidationCallback属性一起使用。这可以像总是返回true一样简单,也可以像我用来调试那样复杂:if(sslPolicyErrors!=SslPolicyErrors.None){Console.WriteLine("正在接受有错误的证书:");if((sslPolicyErrors&SslPolicyErrors.RemoteCertificateNameMismatch)==SslPolicyErrors.RemoteCertificateNameMismatch){Console.WriteLine("t证书主题{0}不匹配。",certificate.Subject);}if((sslPolicyErrors&SslPolicyErrors.RemoteCertificateChainErrors)==SslPolicyErrors.RemoteCertificateChainErrors){Console.WriteLine("t证书链有以下错误:");foreach(X509ChainStatuschainStatusinchain.ChainStatus){Console.WriteLine("tt{0}",chainStatus.StatusInformation);如果(chainStatus.Status==X509ChainStatusFlags.Revoked){allowCertificate=false;}}}if((sslPolicyErrors&SslPolicyErrors.RemoteCertificateNotAvailable)==SslPolicyErrors.RemoteCertificateNotAvailable){Console.WriteLine("没有可用的证书。");允许证书=假;}控制台.WriteLine();代码解释了如何做到这一点本文的目的是在安全模式下创建一个C#FTP客户端,所以如果您对FTPS了解不多,我建议您看一下这个:FTPS。在.NETFramework中,通过FTPS方式上传文件,我们通常使用FtpWebRequest类,但是不能发送带有quote参数的命令,即使在网上搜索,也找不到安全的C#FTP的具体例子客户。由于这些原因,我决定创建这篇文章。以上就是C#学习教程的全部内容:使用C#.Net通过FTPS(SSL/TLS)传输文件,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
