私は本ですべてをやっているとは言えますが、.NETクライアントは自分の要求を行うときに認証ヘッダーを送信しないだけです。 SOAP Webサービス。私は物事のPHPの終わりに未加工の投稿データを記録することでこれを確認しました。そして、.NETは決して認証ヘッダーを送信しません。HTTP認証資格を非.NET WebServiceに送信する方法
ExampleWebService.PreAuthenticate = true;
NetworkCredential myCred = new NetworkCredential("myusername","mypassword");
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(ExampleWebService.Url), "Basic", myCred);
ExampleWebService.Credentials = myCache;
私はそれを理解し、注:PreAuthenticateは関係なく、挑戦のすべての要求に私のHTTP基本認証の資格情報の送信を強制する必要があります。
これは私が私のExampleWebService Webサービスの呼び出しを行う前に実行しているコードです。これはIISのホストサービスでのみ機能しますか?私はどこにも書かれていない。
私は
は
は「機能」か「バグ」ですか? ;-) – jthompson
http://tools.ietf.org/html/rfc2617#page-5によると、正しい動作です。クライアントは、Basicの場合でも、サーバーからチャレンジと* realm *を取得する必要があります。 –
問題のWebServiceは、認証がオプションであるため、挑戦を提示しないので、これを問題の根本的な原因とみなします。他のSOAPクライアントはobvioiuslyの仕様に従っていないし、各要求に対して資格情報を強制的に入力しているので、.NETに対してテストするまでこの問題に遭遇していない。 – jthompson