我正在使用本地Web服务器(IIS,Windows 8)测试应用程序,该站点需要基本身份验证,并且只要我明确传递我的凭据,一切正常:
request.Credentials = new NetworkCredential("User", "Password", "Domain");
request.PreAuthenticate = true;
但我想使用集成安全性,所以我尝试按如下方式更改第一行:
request.Credentials = CredentialCache.DefaultNetworkCredentials;
(我也试过DefaultCredentials)
我用Fiddler检查了网络流量,我发现在第二种情况下,Http请求是在没有授权标头的情况下发送的,因此它失败并不奇怪。但为什么呢?
更新。我相信我误解了默认凭证的概念。 DefaultNetworkCredentials可能不会用于生成基本身份验证标头,它必须是用户/密码对。所以这种行为是设计的。
答案 0 :(得分:0)
感谢评论该主题的人,我意识到我误解了默认凭据的概念。它们不能在这种情况下使用,因此只启用了基本身份验证,因此这是正确的行为。