Java で記述された Web サービスを提供されましたが、これを変更することはできません。いずれかの方法にアクセスするには、ユーザーが基本認証で認証される必要があります。.NET でこのサービスを操作するには、WSE 3.0 がインストールされた Visual Studio 2005 を使用することをお勧めします。
プロジェクトは既に Visual Studio 2008 (.NET 2.0 をターゲット) を使用しているため、これは問題です。私はVS2005でそれを行うことができましたが、プロジェクトをVS2005に結び付けたり、VS2005でアセンブリを作成してVS2008ソリューションに含めたりしたくありません(基本的に、アセンブリへの将来の変更のためにプロジェクトを2005に結び付けます) )。これらのオプションのいずれかを使用すると、新しい開発者に WSE 3.0 のインストールを強制し、プロジェクトで 2008 と .NET 3.5 の機能を将来使用できなくなるため、事態が複雑になると思います... つまり、WCF の使用を本当に信じています。行く方法です。
これにWCFを使用することを検討していますが、WCFサービスが各リクエストとともに認証ヘッダーを送信する必要があることを理解する方法がわかりません。Web サービスで何かしようとすると、401 エラーが発生します。
これは私のコードがどのように見えるかです:
WebHttpBinding webBinding = new WebHttpBinding();
ChannelFactory<MyService> factory =
new ChannelFactory<MyService>(webBinding, new EndpointAddress("http://127.0.0.1:80/Service/Service/"));
factory.Endpoint.Behaviors.Add(new WebHttpBehavior());
factory.Credentials.UserName.UserName = "username";
factory.Credentials.UserName.Password = "password";
MyService proxy = factory.CreateChannel();
proxy.postSubmission(_postSubmission);
これが実行され、次の例外がスローされます。
HTTP 要求は、クライアント認証スキーム「匿名」では許可されていません。サーバーから受信した認証ヘッダーは「Basic realm=realm」でした。
そして、これには次の内部例外があります。
リモート サーバーがエラーを返しました: (401) 権限がありません。
この問題を引き起こしている可能性のあるものについてのご意見をお待ちしております。