一种说法是去掉 DOMAIN\,另一种说法是加上它。这两种改动对你的代理都可能是错的。

这里有两个问题:服务期望的是哪一种身份,以及所选 API 如何表示这种身份。

接口需要确定什么
单一账户名字段运营方接受的确切账户写法
带域字段的凭据 API域与用户名是否应分开提供
URI 内的凭据组成部分预期取值在该容器中应如何编码

例如,.NET 提供 NetworkCredential 构造函数,其用户名、密码和域是彼此独立的参数。不加区分地把域放进两个字段,并不是配置集成身份验证的可移植做法。

基本身份验证是另一种情况:服务器按其自身策略解释所提供的账户文本。处于同一网络并不证明域名前缀是隐含的。带域名的名称也不会自动变成另一种认证协议。

URL 转义应当保留预期账户,而不是改变它。源语言字符串中的反斜杠、账户名中的反斜杠,以及它在 URI 内的百分号编码表示,是彼此独立的层次。

从运营方取得被接受的身份形式和方案,然后使用相应的凭据接口。在短名、域名和形似电子邮件的名称之间随意切换,只会留下关于最初 407 的薄弱证据。

相关文章