Visual Studio から TFS に対して Web 要求が行われるたびに、Fiddler は 401 Unauthorized エラーを表示します。その後、Visual Studio は、TFS が適切なデータと 200 ステータス コードで応答する適切な Authorization Negotiate ヘッダーを使用して再試行します。
401 を停止するために最初に送信される正しいヘッダーを取得するにはどうすればよいですか?
Visual Studio から TFS に対して Web 要求が行われるたびに、Fiddler は 401 Unauthorized エラーを表示します。その後、Visual Studio は、TFS が適切なデータと 200 ステータス コードで応答する適切な Authorization Negotiate ヘッダーを使用して再試行します。
401 を停止するために最初に送信される正しいヘッダーを取得するにはどうすればよいですか?
これが、Windows 統合認証 (NTLM) のプロセスのしくみです。NTLM は接続ベースの認証メカニズムであり、実際には認証済みセッションを確立するために 3 つの呼び出しが必要です。
次に、TFS API は、このハンドシェークが可能な限り最も効率的な方法で行われるようにするために非常に長い時間を費やします。可能な場合、このハンドシェイクを回避するために、認証された接続を開いたままにします。また、最小限のコンテンツで HTTP ペイロードを使用して初期認証を行い、送信するメッセージが特定の長さを超える場合は実際のメッセージを送信します。TFS への接続を最適化するために、他の多くのトリックも実行します。
基本的に、うまく機能するのでそのままにしておきます。
これは常に行われる方法です-リクエストし、401を取り戻し、認証を送信します。これは、httpの認証プロトコルの一部です。
Web サイトと通信するときに、Web ブラウザもこれを行うことがわかります。最初の呼び出しで常に最小限の詳細を提供しようとします。これが失敗した場合、あなたについてもう少し明らかになります。
これは設計によるものであり、非常に正当な理由があります。