2012-07-22 108 views
2

我需要下载隐藏在HTTPS连接后面的文件。HTTPS文件下载C#

我是新来的坐在一个安全的网站后面的文件下载,我已经尝试使用凭据来解决这个问题,但无济于事。

从我已阅读的内容中,您需要创建并使用证书来完成此操作,但我没有找到任何示例。任何帮助表示赞赏。

这是我现在:

 WebClient dove = new WebClient(); 
     CredentialCache mycache = new CredentialCache(); 
     dove.Credentials = new NetworkCredential("user", "pass"); ; 
     dove.DownloadProgressChanged += new DownloadProgressChangedEventHandler(dove_DownloadProgressChanged); 
     dove.DownloadFileCompleted += new AsyncCompletedEventHandler(dove_DownloadFileCompleted); 
     dove.DownloadFileAsync(new Uri("http://secure.website.com/File/Default.aspx"), "file.xls"); 

能不能有人为我提供关于如何完成这样的一个例子,谢谢。

回答

2

.NET支持HTTPS证书和U并不需要显式地提供。您的代码看起来不错,只要您的网站不需要表单身份验证,它就会正常工作。从你的代码看,认证可能是基本认证。但是,如果需要表单身份验证,通常对于网站来说,那么您首先需要编写一个代码,用于从服务器验证并接收已验证的cookie。 如何做到这一点?最好看看这个SO问题 HttpClient and forms authentication in C#

+0

我想我会做的就是使用那篇文章。由于我读过它,我不完全了解它,发生了什么: 1.程序登录到站点并检索Cookie。 2.在存储cookie后,当您希望下载文件或在网站上完成操作时,它会继续使用cookie作为身份验证的一种形式。 – 2012-07-22 02:21:23

2

尝试:透明

ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policy) => { 
    //do what you want 
    return true; 
};