HttpWebRequest + Windows Auth - NetworkCredential只是不起作用

Luk*_*ett 7 .net c# asp.net security

我有一个ASP.NET MVC 4 Web服务.在我的开发箱上,我正在运行IIS Express 7.5,因此我们调用localhost:port.我已将其设置为使用Windows身份验证并关闭匿名.

在我的客户端,如果我设置

HttpWebRequest.Credentials = CredentialCache.DefaultNetworkCredentials;
Run Code Online (Sandbox Code Playgroud)

有用.但是,如果我将凭据设置为我的其他Windows域帐户,

HttpWebRequest.Credentials = new NetworkCredential("lpuplett", "catsGoW00f", "ntdom"));
Run Code Online (Sandbox Code Playgroud)

然后我得到401 Unauthorized.我误解了什么; 这有用吗?

我已经尝试将凭据添加到CredentialCache对象并在交叉手指时设置缓存,并且我的眼睛紧闭,真的希望.

谢谢,

卢克

解决了

花了3个小时搜索并在发布我自己的问题后,我找到了答案,在这里可靠的SO:

WebClient类的域凭据不起作用

什么都不感谢;-)

Luk*_*ett 5

来自链接重复问题的评论:

您需要指定身份验证类型.当服务器使用NTLM身份验证向客户端提出质询时,将使用authType ="NTLM"在WebClient.Credentials上调用ICredentials.GetCredential方法.如果您使用WebClient.Credential = new NetworkCredential(...),因为未指定身份验证类型,则客户端将无法正确响应.CredentialCache已实现此功能. - 达林季米特洛夫2009年11月5日14:57