如何将用户凭据传递给web服务

本文关键字:web 服务 用户 | 更新日期: 2023-09-27 18:17:43

我正在windows应用程序中使用WSDL消费web服务。当我尝试使用方法时,我得到以下错误:-

使用客户端认证方案,HTTP请求未授权"匿名"。从服务器接收到的认证头是'"

{"远程服务器返回一个错误:(401)未经授权。"}

我有用户凭证,但不知道如何在windows应用程序中使用c#代码传递它

如何将用户凭据传递给web服务

它是如何为我工作的:-

配置文件设置如下:-

<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";

您可以尝试使用这里提到的方法生成服务客户机代理。一旦您有了WCF客户机代理的实例,它将有一个属性ClientCreditials,您可以根据需要填充它。