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

时间:2012-07-24 11:36:25

标签: c# asp.net .net security

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

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

HttpWebRequest.Credentials = CredentialCache.DefaultNetworkCredentials;

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

HttpWebRequest.Credentials = new NetworkCredential("lpuplett", "catsGoW00f", "ntdom"));

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

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

谢谢,

解决

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

Domain credentials for a WebClient class don't work

谢天谢地; - )

1 个答案:

答案 0 :(得分:5)

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

  

您需要指定身份验证类型。当服务器   使用NTLM身份验证挑战客户端   ICredentials.GetCredential方法将被调用   具有authType =“NTLM”的WebClient.Credentials。如果你用过   WebClient.Credential =新的NetworkCredential(...),因为没有身份验证   指定了类型,客户端将无法正确响应。   CredentialCache已实现此功能。 - 达林   季米特洛夫于2009年11月5日14:57