0

每当 Visual Studio 向 TFS 发出 Web 请求时,Fiddler 都会显示 401 Unauthorized 错误。然后,Visual Studio 将使用适当的授权协商标头再次尝试,TFS 将使用该标头以适当的数据和 200 状态代码进行响应。

如何在第一时间发送正确的标头以停止 401?

4

3 回答 3

5

这就是 Windows 集成身份验证 (NTLM) 的工作方式。NTLM 是一种基于连接的身份验证机制,实际上涉及 3 次调用来建立经过身份验证的会话。

然后,TFS API 会竭尽全力确保以最有效的方式完成握手。它将使经过身份验证的连接保持打开一段时间,以尽可能避免这种握手。它还将使用内容最少的 HTTP 有效负载进行初始身份验证,然后如果您要发送的消息超过一定长度,则发送真实消息。它还做了很多其他技巧来优化与 TFS 的连接。

基本上,我会不理会它,因为它运作良好。

于 2009-02-24T10:40:41.637 回答
0

您将看到 Web 浏览器在与网站通信时也会执行此操作。它总是会尝试在第一次调用时提供最少的细节。如果这失败了,它将揭示更多关于你的信息。

这是设计使然,并且有充分的理由。

于 2009-02-24T09:45:19.587 回答
0

这就是它的一贯做法——请求,取回 401,然后发送授权。它是 http 身份验证协议的一部分。

于 2011-04-19T05:06:55.913 回答