我有一个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
谢天谢地; - )
答案 0 :(得分:5)
来自链接重复问题的评论:
您需要指定身份验证类型。当服务器 使用NTLM身份验证挑战客户端 ICredentials.GetCredential方法将被调用 具有authType =“NTLM”的WebClient.Credentials。如果你用过 WebClient.Credential =新的NetworkCredential(...),因为没有身份验证 指定了类型,客户端将无法正确响应。 CredentialCache已实现此功能。 - 达林 季米特洛夫于2009年11月5日14:57