将安全头添加到Xamarin.Forms中的SOAP Web服务中

将安全头添加到Xamarin.Forms中的SOAP Web服务中,soap,header,wsdl,xamarin.forms,Soap,Header,Wsdl,Xamarin.forms,我正在尝试从SOAP Web服务获取数据。我能够从测试服务中获取数据。就这样: var service = new CurrencyConvertor(); var f = service.ConversionRate(Currency.EUR, Currency.USD); 我将该服务作为“Web引用”添加到Droid项目中,并将其与代理类一起使用 现在我被一个新的web服务卡住了。问题是:我需要提供一个安全头,但我真的无法让它与Xamarin一起工作。已经尝试在PCL中使用,但在那里我不能

我正在尝试从SOAP Web服务获取数据。我能够从测试服务中获取数据。就这样:

var service = new CurrencyConvertor();
var f = service.ConversionRate(Currency.EUR, Currency.USD);
我将该服务作为“Web引用”添加到Droid项目中,并将其与代理类一起使用

现在我被一个新的web服务卡住了。问题是:我需要提供一个安全头,但我真的无法让它与Xamarin一起工作。已经尝试在PCL中使用,但在那里我不能添加标题太多

Webservice标题:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
      <s:Header>
        <Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
          <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsse:Username>UserName</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
          </wsse:UsernameToken>
        </Security>
      </s:Header>
    ...

用户名
密码
...

请求在SoapUI中工作

通过创建第二个wcf服务解决了这个问题,该服务使用上面的服务。在新的验证中,我使用代码身份验证,然后调用带有安全头的验证。唯一对我有效的解决方案