使用基本授权调用 web soap webservice
Calling a web soap webservice with basic authorization
我在 visual studio 中创建了一个项目并向 wsdl 文件添加了一个服务引用。当我第一次尝试连接到我的服务时,我收到一条错误消息,告诉我我需要基本授权。
所以我关注了 this 问题。并将安全标签添加到我的 app.config。但是,现在我在 xml 中收到一个错误,该模式不是安全的有效属性,传输不是有效的元素。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="ConfigurationPortBinding">
<mtomMessageEncoding messageVersion="Soap11" />
<httpTransport />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://xxxx/CoreServices/ConfigurationService"
binding="customBinding" bindingConfiguration="ConfigurationPortBinding"
contract="ServiceReference1.Configuration" name="ConfigurationPort" />
</client>
</system.serviceModel>
</configuration>
知道我做错了什么吗?
好的,问题是我无法将安全标签添加到我的自定义绑定中,它是在我添加引用时自动创建的。所以我删除了 <customBinding><...></custombinding>
并添加了一个 <basciHttpBinding>
,如 here 所述。之后我不得不更改 <endpoint>
,以指向新的绑定。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup><.../></startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicAuthConf">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://xxxx/CoreServices/ConfigurationService"
binding="basicHttpBinding" bindingConfiguration="BasicAuthConf"
contract="ServiceReference1.Configuration" name="ConfigurationPort" />
</client>
</system.serviceModel>
</configuration>
我在 visual studio 中创建了一个项目并向 wsdl 文件添加了一个服务引用。当我第一次尝试连接到我的服务时,我收到一条错误消息,告诉我我需要基本授权。
所以我关注了 this 问题。并将安全标签添加到我的 app.config。但是,现在我在 xml 中收到一个错误,该模式不是安全的有效属性,传输不是有效的元素。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="ConfigurationPortBinding">
<mtomMessageEncoding messageVersion="Soap11" />
<httpTransport />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://xxxx/CoreServices/ConfigurationService"
binding="customBinding" bindingConfiguration="ConfigurationPortBinding"
contract="ServiceReference1.Configuration" name="ConfigurationPort" />
</client>
</system.serviceModel>
</configuration>
知道我做错了什么吗?
好的,问题是我无法将安全标签添加到我的自定义绑定中,它是在我添加引用时自动创建的。所以我删除了 <customBinding><...></custombinding>
并添加了一个 <basciHttpBinding>
,如 here 所述。之后我不得不更改 <endpoint>
,以指向新的绑定。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup><.../></startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicAuthConf">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://xxxx/CoreServices/ConfigurationService"
binding="basicHttpBinding" bindingConfiguration="BasicAuthConf"
contract="ServiceReference1.Configuration" name="ConfigurationPort" />
</client>
</system.serviceModel>
</configuration>