无法下载文件 System.Net.WebClient因为认证?

问题描述

我尝试了一种非常简单的下载文件,这些文件可以通过 url 访问。这些文件驻留在我不是用户的同一网络上的另一个站点中。即我无法通过登录访问系统。

当我在浏览器中打开一个 url 时,即使在匿名浏览器窗口中,我也可以访问文件。即使我无权登录包含这些文件站点,它们也会自动下载到我的计算机中。

但是,将它们下载到磁盘时,即使我看到它们获得了正确的文件名和文件类型,也无法打开它们。 所有下载的文件都会得到相同的 38kb 文件大小,即使它们的原始文件大小更大。所以,我有一种预感,将文件重命名为“something.htm”,然后我可以打开文件,结果是该站点登录页面的 html。

因此,由于某种原因,即使我可以通过在浏览器中使用与我通过代码下载文件时使用的 URL 相同的 URL 来访问/下载文件,我也无法从域用户执行的代码中以编程方式访问文件

我实际上可以访问此外部系统的系统用户登录用户名和密码,但即使将网络凭据设置为 webClient 我也得到相同的结果:下载的文件是 html 登录页面

有没有人有任何关于如何解决这个问题的提示?我使用下面的代码

 public string DownloadFileAsBase64String2(string url,string fileName,NetworkCredential nwCredential = null)
    {
        using (WebClient myWebClient = new WebClient())
        {               
                if (nwCredential != null)
                    myWebClient.Credentials = nwCredential;
             
                myWebClient.DownloadFile(url,fileName);                    
        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)