如何在WCF

时间:2015-06-12 19:24:17

标签: wcf soap wcf-security

我试图通过WCF调用一个Web服务,它在SOAP Header中有USERNAME和PASSWORD。

我能够在客户端创建SOAP头,但必须从服务端测试它。下面是我从Fiddler生成的SOAP Envelope。

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
      <wsse:UsernameToken xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">username</wsse:UsernameToken>
      <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">l5ZdykMOMh0c9FBMmuzj1mSDkII=</wsse:Password>
      <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">X3hHHJmJGpLQiv0otiPmEcuyZODKuG2N2luzQyRSx6XnNGqJlDtL+u72Xo1jnVzUEBZlA3BZxNOsE/CC6227hw==</wsse:Nonce>
    </wsse:Security>
  </s:Header>
  <s:Body>
    <GetData xmlns="http://tempuri.org/">
      <value>8</value>
    </GetData>
  </s:Body>
</s:Envelope>

但我没有得到如何开发为此创建服务。表示如何在服务级别验证此用户名和密码。

由于我创建了普通的WCF服务,当我传递SOAP请求时,我收到以下错误,但有些我必须如何制作此服务,它应该检查SOAP请求中传递的凭据,并且响应必须送回客户端。

  

错误:他的内容类型为text / html; charset =响应的UTF-8   message与绑定的内容类型不匹配(text / xml;   字符集= UTF-8)。如果使用自定义编码器,请确保   IsContentTypeSupported方法正确实现。第一个1024   响应的字节是:'Fiddler Echo Service

Fiddler Echo   服务


POST /Service1.svc HTTP / 1.1内容类型:   文/ XML; charset = utf-8 VsDebuggerCausalityData:   uIDPo4Ge0 / 7PGPVGuUnHA42gJlABAAAAg + I / 3kLfaUmsO7qOZzeMmSRKTvecymdLlkjZ9CAeqTcACQAA   SOAPAction:“http://tempuri.org/IService1/GetData&quot;主持人:   localhost:8888内容长度:836期待:100-continue   Accept-Encoding:gzip,deflate Connection:Keep-Alive

     

&LT; S:信封   的xmlns:S =“http://schemas.xmlsoap.org/soap/envelope/"><s:Header><wsse:Security   的xmlns:的wsse =“http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken   xmlns:wsse =“http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">username</wsse:UsernameToken><wsse:Password Type =”http://docs.oasis-open.o'。

** EDITED:

我的路径:

我必须使用SOAP(Web服务)中的服务 取用户名令牌参数。

  1. 为该基本行为创建存根。
  2. 能够在不添加UserName令牌的情况下访问服务,如上所述。
  3. 但是在添加安全令牌后收到错误。
  4. 现在我想更新我的服务(存根),它应该能够接受 SOAP请求我作为XML和用户名和密码传递的内容 验证应该在基于SOAP请求和i的服务中进行 如果经过身份验证,则必须收到回复。

0 个答案:

没有答案