【发布时间】:2009-06-22 20:06:07
【问题描述】:
基本上,我需要从需要 Windows 身份验证的位置提供文件。当然,我不想让我的客户直接处理它,而是想实现一个过程,以便他们可以像在我的服务器上一样简单地下载文件,当然,在他们登录到我的系统之后。这是我目前所拥有的,似乎无法正常工作:
// Create the request
WebRequest request = HttpWebRequest.Create(button.CommandArgument);
request.Credentials = new NetworkCredential(_username,_password);
// Get the response
WebResponse response = request.GetResponse();
StreamReader responseStream = new StreamReader( response.GetResponseStream());
// Send the response directly to output
Response.ContentEncoding = responseStream.CurrentEncoding;
Response.ContentType = request.ContentType;
Response.Write(responseStream.ReadToEnd());
Response.End();
当我尝试这个时,我可以查看文件,但编码或内容类型有问题,例如,PDF 将包含 16 个空白页(而不是 16 页文本)。
知道我错过了什么吗?
如果有更好的表述方式,请随时更改此问题的标题
更新: 尝试了下面的两个响应,但没有运气。我现在认为内容类型和编码都可以,但可能身份验证失败?内容长度比实际应该小很多...我是否使用了错误的 Windows 身份验证方法?
【问题讨论】:
-
你应该检查你从内部请求中得到了什么。也许您正在从服务器以错误页面的形式返回 HTML。
标签: asp.net file file-io download windows-authentication