WebClient生成(401)未授权错误

Mat*_*att 32 c# webclient download

我在Windows服务中运行以下代码:

WebClient webClient = new WebClient();
webClient.Credentials = new NetworkCredential("me", "12345", "evilcorp.com");
webClient.DownloadFile(downloadUrl, filePath);
Run Code Online (Sandbox Code Playgroud)

每次,我都会得到以下异常

{"The remote server returned an error: (401) Unauthorized."}
Run Code Online (Sandbox Code Playgroud)

具有以下内部异常:

{"The function requested is not supported"}
Run Code Online (Sandbox Code Playgroud)

我知道凭证是有效的,事实上,如果我在我的网络浏览器中下载urrl并输入我的凭据evilcorp.com\me,密码为12345,则下载正常.

但奇怪的是,如果我将我的凭证指定为me@evilcorp.com并且12345,则它似乎失败了.

有没有办法格式化凭据?

P.B*_*key 82

webClient.UseDefaultCredentials = true; 解决了我的问题.

  • 布莱恩,如果你离我更近,我发誓我现在会吻你!几个小时一直在与这个斗争,只错过了这个设置!?:-o谢谢!! (4认同)

小智 6

显然,您运行的操作系统很重要,因为默认加密在操作系统之间发生了变化.此博客有更多详细信息:http://ferozedaud.blogspot.com/2009/10/ntlm-auth-fails-with.html

这显然也在stackoverflow上进行了讨论:407需要验证 - 没有发送挑战

我建议先阅读博客,因为那里有蒸馏知识.