でWebサービスを消費:リクエストがウェブに送信されは、私はこのコードでWebサービスを利用したいC#と基本認証
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="GenRelClientPortBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint
address="http://ws.domain.com/GenRel/GenRel"
binding="basicHttpBinding"
bindingConfiguration="GenRelClientPortBinding"
contract="WebService.GenRelClientPort"
name="GenRelClientPort" />
</client>
</system.serviceModel>
</configuration>
:
WebService.GenRelClient client = new WebService.GenRelClient();
client.ClientCredentials.UserName.UserName = @"UserName";
client.ClientCredentials.UserName.Password = @"Password";
var response = client.returnString("test");
そして、私の設定は次のようになりますサービスは応答が返されます。これは、要求が資格情報なしで送信された可能性がありますので、基本認証が必要であるという誤ったメッセージが返されるため、間違いがどこにあるか分かりません。あなたはSOAPヘッダにセキュリティ情報を追加する必要がありますのWebサービスを呼び出すことができるようにするには
はあなたの助け
私はこの質問は、タイトル「どのようにWebサービスへのユーザーの資格情報を渡すように」との質問の重複であることを同意しません。 Bushwackaが直面する問題は、サーバーがPreemptive認証を使用するように構成されていることです。クライアントがSOAPヘッダーで認証情報を送信する必要がある非常に特殊なケースです。これは前に述べた問題では解決されていません。 –