C#中的FTPS(基于SSL的FTP)

我需要一些指导。我需要在C#中开发一个可自定义的FTP,应使用App.Config文件对其进行配置。另外,FTP应该再次将数据从任何客户端推送到任何服务器,具体取决于配置文件。

如果有人可以提供指导,是否有任何API或任何其他有用的建议,或者向正确的方向发展,我将不胜感激。


至尊宝的传说
浏览 1385回答 3
3回答

阿波罗的战车

您可以使用FtpWebRequest ; 但是,这是相当低的水平。有一个更高级别的类WebClient,在许多情况下它需要更少的代码。但是,默认情况下它不支持FTP / SSL。幸运的是,您可以WebClient通过注册自己的前缀来使用FTP / SSL:private void RegisterFtps(){    WebRequest.RegisterPrefix("ftps", new FtpsWebRequestCreator());}private sealed class FtpsWebRequestCreator : IWebRequestCreate{    public WebRequest Create(Uri uri)    {        FtpWebRequest webRequest = (FtpWebRequest)WebRequest.Create(uri.AbsoluteUri.Remove(3, 1)); // Removes the "s" in "ftps://".        webRequest.EnableSsl = true;        return webRequest;    }}完成此操作后,WebClient几乎可以像平常一样使用,除了您的URI以“ ftps://”而不是“ ftp://”开头。一个警告是您必须指定该method参数,因为将没有默认值。例如using (var webClient = new WebClient()) {    // Note here that the second parameter can't be null.    webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state);}

杨魅力

要自动接受客户端可能遇到的任何证书,此方法有效:ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
打开App,查看更多内容
随时随地看视频慕课网APP