1

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

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

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

request.Credentials = CredentialCache.DefaultNetworkCredentials;

(我也试过 DefaultCredentials)

我用 Fiddler 检查了网络流量,我看到在第二种情况下 Http 请求是在没有授权标头的情况下发送的,所以它失败也就不足为奇了。但为什么?

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

4

1 回答 1

0

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

于 2013-01-18T17:31:43.640 回答