繁体   English   中英

强制WebClient使用SSL

[英]Force WebClient to use SSL

我看到这篇文章给出了使用WebClient将文件上传到ftp的简单想法。 简单,但如何强制它使用SSL

Edward Brey 在这里答案可能会回答你的问题。 我没有提供自己的答案,而是复制爱德华所说的:


你可以使用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;
    }
}

执行此操作后,您几乎可以像平常一样使用WebRequest,但您的URI以“ftps://”而不是“ftp://”开头。 需要注意的是,您必须指定方法,因为不会有默认方法。 例如

// Note here that the second parameter can't be null.
webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM