【问题标题】:HttpWebRequest + Windows Auth - NetworkCredential just doesn't work [duplicate]HttpWebRequest + Windows Auth - NetworkCredential 不起作用[重复]
【发布时间】:2021-04-12 15:27:07
【问题描述】:

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

【问题讨论】:

  • 我猜这不是重复的。我指出帖子要求进行 Windows 身份验证,而该帖子中的答案使用 Ntlm……我也面临同样的问题,使用 Windows 身份验证

标签: c# asp.net .net security


【解决方案1】:

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

您需要指定身份验证类型。当服务器 使用 NTLM 身份验证挑战客户端 ICredentials.GetCredential 方法将被调用 authType = "NTLM" 的 WebClient.Credentials。如果你用过 WebClient.Credential = new NetworkCredential(...) as no authentication 指定了类型,客户端将无法正确响应。 CredentialCache 已经实现了这个功能。 – 达林 Dimitrov 2009 年 11 月 5 日 14:57

【讨论】:

    猜你喜欢
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多