7

我有一个 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 对象并设置缓存。

4

1 回答 1

5

从链接的重复问题中的评论:

您需要指定身份验证类型。当服务器通过 NTLM 身份验证挑战客户端时,将在 WebClient.Credentials 上调用 ICredentials.GetCredential 方法,其中 authType = "NTLM"。如果您使用 WebClient.Credential = new NetworkCredential(...) 没有指定身份验证类型,则客户端将无法正确响应。CredentialCache 已经实现了这个功能。– Darin Dimitrov 2009 年 11 月 5 日 14:57

于 2012-12-10T18:24:46.713 回答