如何处理WCF WS安全性UserNameToken服务授权中的其他元素

时间:2019-05-23 09:37:08

标签: c# web-services wcf authorization

我需要使用UsernameToken授权公开WCF服务。 除了一件事情,一切都按预期进行。

客户端有一条固定消息,其中包含http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd定义之外的其他标签 添加此标签元素后,安全验证将失败。

我想忽略这个附加参数(我不需要使用它)。可以这样做吗?

我尝试禁用安全性,但mustundersand属性需要启用它。

标题正常工作

<wsse:Security SOAP-ENV:mustUnderstand="true">
            <wsse:UsernameToken>
                <wsse:Username>x</wsse:Username>
                <wsse:Password>y</wsse:Password>                
            </wsse:UsernameToken>
</wsse:Security>

出现错误的标题

<wsse:Security SOAP-ENV:mustUnderstand="true">
            <wsse:UsernameToken>
                <wsse:Username>x</wsse:Username>
                <wsse:Password>y</wsse:Password>                
                <wsse:PartnerID>z</wsse:PartnerID>
            </wsse:UsernameToken>
</wsse:Security>

添加PartnerID时出现错误:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <s:Fault>
         <faultcode xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</faultcode>
         <faultstring xml:lang="en-US">An error occurred when verifying security for the message.</faultstring>
      </s:Fault>
   </s:Body>
</s:Envelope>

0 个答案:

没有答案