使用基本身份验证的HttpWebRequest

176

我正在尝试通过一个模拟“基本身份验证请求”的认证请求,这与我们在设置IIS时看到的行为相似。

URL是:https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2
(警告:https!)

该服务器在UNIX和Java应用程序服务器下运行。

这是我用来连接到此服务器的代码:

CookieContainer myContainer = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2");
request.Credentials = new NetworkCredential(xxx,xxx);
request.CookieContainer = myContainer;
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

(我从这个网站上的另一篇帖子中复制了这个问题)。但是服务器返回了如下答案:

底层连接已关闭: 发生了意外错误。

我认为我尝试了我所掌握的 C# 知识可以提供的所有可能的解决方案,但是没有任何作用……


如果你加上了以下代码,我想这个程序就能够工作:request.UseDefaultCredentials = false; - bpeikes
11个回答

0
一个原因是为什么最佳答案和其他答案对你不起作用,是因为它缺少了一行关键代码。(注意许多API手册都会忽略这个必要性)
request.PreAuthenticate = true;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接