【发布时间】:2009-08-12 07:03:56
【问题描述】:
已通过身份验证的网站下载失败。我尝试过传递网络凭据并允许自动重定向,但这不起作用。
该应用程序适用于允许通过身份验证下载的 URL。但是我的应用程序必须从需要身份验证的站点下载组件。所以在浏览器中..下载 url 重定向到授权窗口,然后使用 dirct 文件下载链接重定向回原始域,然后浏览器下载-保存文件-对话框打开。 但是在我的应用程序中,如果将凭据发送到原始下载页面,它不会抛出任何异常或说身份验证是否有效,而是会下载一些随机的小文件,比如大约 0.05MB(我尝试下载的文件至少 50MB+)
有谁知道我做错了什么?或者我如何才能看到我的代码执行时发生了什么?
private HttpWebRequest hRequest;
private HttpWebResponse hResponse;
NetworkCredential myCred = new NetworkCredential("username@some.com", "123random");
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri("domain"), "Basic", myCred);
hRequest = (HttpWebRequest)WebRequest.Create(tbURL.Text);
hRequest.Credentials = myCache;
hRequest.AllowAutoRedirect = true;
//hRequest.Credentials = CredentialCache.DefaultCredentials;
hResponse = (HttpWebResponse)hRequest.GetResponse();
【问题讨论】:
-
需要更多信息;这可能取决于服务器配置。下载的文件中有什么?并且按照 zowat 的建议使用 Fiddler - 它是一个很棒的本地 http 代理,可以让您看到所有来回的流量,包括日志记录等。
标签: c# authentication httpwebrequest download