具有基本身份验证的HttpWebRequest失败,并且DefaultNetworkCredentials出现401错误

时间:2013-01-18 16:08:09

标签: c# httpwebrequest basic-authentication networkcredentials

我正在使用本地Web服务器(IIS,Windows 8)测试应用程序,该站点需要基本身份验证,并且只要我明确传递我的凭据,一切正常:

request.Credentials = new NetworkCredential("User", "Password", "Domain");
request.PreAuthenticate = true;

但我想使用集成安全性,所以我尝试按如下方式更改第一行:

request.Credentials = CredentialCache.DefaultNetworkCredentials;

(我也试过DefaultCredentials)

我用Fiddler检查了网络流量,我发现在第二种情况下,Http请求是在没有授权标头的情况下发送的,因此它失败并不奇怪。但为什么呢?

更新。我相信我误解了默认凭证的概念。 DefaultNetworkCredentials可能不会用于生成基本身份验证标头,它必须是用户/密码对。所以这种行为是设计的。

1 个答案:

答案 0 :(得分:0)

感谢评论该主题的人,我意识到我误解了默认凭据的概念。它们不能在这种情况下使用,因此只启用了基本身份验证,因此这是正确的行为。

相关问题