我对此很陌生,没有其他人可以问。我正在尝试以编程方式(C#)访问某个网页报废软件的网页。我已经找到了使用HttpWebResponse和HttpWebRequest类通过网页表单执行登录的过程,但我有一个网站,它有两个阶段的登录程序。
首次登录通过弹出窗口进行。后台没有加载任何网页,只是一个弹出对话框,说明需要进行身份验证并提示输入用户名和密码。
在第一次登录后,第二次登录只是一个网络表单,我应该能够从我已经学到的东西中处理自己。
我的问题:如何以编程方式提供弹出式身份验证请求的登录信息?
修改
仅提供更多信息。 Fiddler在尝试访问网站时将主机视为CONNECT。
修改
我试图在下面使用MrEye的答案,虽然它似乎让我更进一步,仍然有挂断。我是gettin证书问题,所以在谷歌工作之后,我通过添加以下代码找到了解决方法:
ServicePointManager.ServerCertificateValidationCallback +=
delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
};
现在我收到System.Net.WebException
,其值为“删除服务器返回错误:(401)未经授权。”例外Status
是ProtocolError,但我还没有进一步。我确信所提供的用户名/密码有效。
答案 0 :(得分:1)
您需要做的就是将NetworkCredential对象设置为您创建的HttpWebRequest对象的Credentials属性。例如:
myWebRequest.Credentials = new NetworkCredential("username","password");
根据您连接的服务器,您可能还需要:
myWebRequest.PreAuthenticate = true;