DefaultCredentials 不会把你的 Windows 登录变成 Basic 密码
把 .NET 的默认安全上下文与代理的认证方案对齐,而不是指望浏览器里保存的 Basic 账户自动出现。
浏览器记住了代理账户。你的 .NET 客户端使用 CredentialCache.DefaultCredentials,收到 407,却没有出现你预期的重试。这两件事并不矛盾。
DefaultCredentials 表示受支持的集成认证下的当前安全上下文。Microsoft 记录了它对 NTLM、Negotiate 和 Kerberos 的适用性。它并不是要求从浏览器保存的登录信息中提取用户名和明文密码。
如果代理提供 Basic 并要求单独的账户,请通过客户端支持的代理凭据接口配置该账户。显式的 NetworkCredential 与当前 Windows 安全上下文是不同的输入。
在更改密码之前,先检查已通告的质询。还要检查运行应用程序的用户上下文。桌面可执行文件和服务即使在同一台计算机上启动,也可能拥有不同的身份。
也没有理由把账户再复制到目标的凭据属性里。让中间方的登录留在中间方。有用的诊断会点明三件事:所选的代理、它请求的方案,以及应用程序实际提供的凭据类型。