Как обрабатывать дополнительные элементы в WCF WS Security UserNameToken Сервис авторизации - PullRequest
0 голосов
/ 23 мая 2019

Мне нужно предоставить сервис WCF с авторизацией UsernameToken.Все работает, как и ожидалось, кроме одного.

Клиент имеет исправленное сообщение, которое включает в себя дополнительный тег, которого нет в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...