13

Windows アプリケーションで WSDL を使用して Web サービスを使用しています。メソッドを使用しようとすると、次のエラーが表示されます:-

HTTP 要求は、クライアント認証スキーム「匿名」では許可されていません。サーバーから受信した認証ヘッダーは「」でした

{"リモート サーバーがエラーを返しました: (401) Unauthorized."}

ユーザー資格情報はありますが、Windows アプリケーションで C# コードを使用して渡す方法がわかりません。

4

2 に答える 2

13

これが私にとってどのように機能するかです:-

構成ファイルの設定は次のようになります:-

<configuration>
    <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="bindingName"  >
              <security mode="TransportCredentialOnly">
                <transport clientCredentialType="Basic" proxyCredentialType="None" realm=""/>
                <message clientCredentialType="UserName" algorithmSuite="Default"/>
              </security>
            </binding>

          </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://10.10.10.10:1880/testpad/services/Testwebservice"
                binding="basicHttpBinding" bindingConfiguration="bindingName"
                contract=testService.GetData" name="test_Port1" />
        </client>
    </system.serviceModel>
</configuration>

そしてここで私はユーザー資格情報を渡しています:-

 var ser = new GetDataClient();
 ser.ClientCredentials.UserName.UserName = "userid";
 ser.ClientCredentials.UserName.Password = "Pa$$word1";
于 2013-06-13T17:52:25.730 に答える
0

ここに記載されている方法を使用して、サービス クライアント プロキシの生成を試みることができます。WCF クライアント プロキシのインスタンスを取得ClientCreditialsすると、必要に応じて設定できるプロパティが作成されます。お役に立てれば。

于 2013-06-10T20:25:05.243 に答える