查询https网页时出错

时间:2014-08-25 20:43:12

标签: c# https httpwebrequest webclient unauthorized

我尝试从https网页下载网页。当我使用浏览器尝试此操作时,它可以工作,但它不能在C#中工作。尝试了webclient和WebRequest。同样的错误" UnAuthorized"。任何帮助表示赞赏。尝试查看其他解决方案,例如使用WebRequest保存cookie。但是没有用。

我能够从响应中检索标头。身份验证类型是NTLM,在浏览器中我看到一个包含用户名和密码的对话框。在我们的测试服务器中试过这个。它工作正常。但是不能使用这个网页。

标题= {Content-Type:text / html 服务器:Microsoft-IIS / 7.5 WWW-Authenticate:谈判,NTLM X-Powered-By:ASP.NET 日期:星期一,2014年8月25日20:02:07 GMT 内容长度:1293 Set-Cookie:BIGipServerpool_legacy_www = 1269436588.20480.0000;路径= / }

使用webClient

            using (var client = new WebClient())
            {
                client.Proxy = null;
                client.Credentials = new NetworkCredential(username, password);
                ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policy) =>
                {
                    return true;
                };
                string data = client.DownloadString(url);
                return data;
            }

使用WebRequest

            var request = (HttpWebRequest) WebRequest.CreateHttp(url);
            request.Credentials = new NetworkCredential(username, password, domain);
            ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policy) =>
            {
                return true;
            };
            var response = (HttpWebResponse) request.GetResponse();
            var stream = response.GetResponseStream();

1 个答案:

答案 0 :(得分:0)

问题在于网址。当我在浏览器中进行操作时,它会重定向到正确的URL。 Fiddler的日志有所帮助。添加了处理http重定向逻辑的代码。