リモート AIX サーバーでホストされている Web サービスがあり、サービスには HTTPS アクセスがあり、基本認証がオンになっています。
ASMX Web 参照を使用して、.Net 4.0 プロジェクトからプロキシ クラスを生成しました。したがって、Webサービスを呼び出す次のコードがあります
var service = new ServiceProxy();
service.Credentials = new NetworkCredential("service-uid", "service-pwd");
var response = service.add(request);
それは非常に単純なコードです。ここで、Fiddler を実行して、ローカル Windows マシンとリモート Unix サーバー間のトラフィックを調べましたが、Fiddler から次の 4 行が表示されていることに気付きました。
- 200、HTTP、Tunnel To、unix-server-host
- 401、HTTPS、unix-server-host、/srvcs/method
- 200、HTTP、Tunnel To、unix-server-host
- 200、HTTPS、unix-server-host、/srvcs/method
また、AIXサーバーでログファイルを開き、非常に近い時間内に2つのリクエストが来ることを確認しました
- ソース IP - 認証されていない 22/Aug/2013:14:05:51 -0500 "POST /srvcs/method HTTP/1.0" 401 1244
- ソース IP - service-uid 22/Aug/2013:14:05:52 -0500 "POST /srvcs/method HTTP/1.0" 200 3473
私のサービス クライアントは、Unix サーバーに対して 2 つの呼び出しを発行します。最初の呼び出しは認証されていません。
資格情報をまったく渡さずに.Netクライアントが最初の呼び出しを生成する理由を誰でも理解していますか?