2016-03-14 11 views
6

Próbowałem stworzyć zwyczaj wiązania do wyjścia tego typu nagłówka XML:Tworzenie niestandardowego wiążącej w C#

<soapenv:Header> 
    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <wsse:UsernameToken wsu:Id="UsernameToken-BEC9D84D8B68A3118D14543420311491"> 
     <wsse:Username>user</wsse:Username> 
     <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass</wsse:Password> 
     <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hBcjVXk/NxiSiva5xXKphA==</wsse:Nonce> 
     <wsu:Created>2016-02-01T15:53:51.146Z</wsu:Created> 
    </wsse:UsernameToken> 
    </wsse:Security> 

Oto mój kod do tej pory:

 var customBinding= new CustomBinding(); 

     var securityBindingElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); 
     securityBindingElement.IncludeTimestamp = false; 
     customBinding.Elements.Add(securityBindingElement); 
     customBinding.Elements.Add(new TextMessageEncodingBindingElement()); 

     var transportElement = new HttpsTransportBindingElement(); 

     customBinding.Elements.Add(transportElement); 

Jednak nadal otrzymuję komunikat z informacją:

The message could not be processed. This is most likely because the action is incorrect or because the message contains an invalid or expired security context token or because there is a mismatch between bindings.

Jestem prawie pewien, że ma to związek z moim custombinding, ale mam strasznie trudny czas próbując dowiedzieć się, jakie właściwości trzeba ustawić na co. Doceń wszelkie wskazówki !!!

+0

Twój wiązanie wygląda dużo jak mój zwyczaj wiązania, które działa - chociaż użyłem BinaryMessageEncoding .. co byłoby warto spróbować – BugFinder

+0

Dzięki - nowy komunikat o błędzie: 'The typ zawartości text/html komunikatu odpowiedzi nie jest zgodny z typem treści powiązania (application/soap + msbin1). Jeśli używasz niestandardowego enkodera, upewnij się, że metoda IsContentTypeSupported jest prawidłowo zaimplementowana " – 99823

+0

wiesz, kiedy ładujesz referencję w funkcji vs, pojawi się pytanie, jak chcesz obsługiwać różne kolekcje - Zastanawiam się, czy to właśnie robi dla ciebie ... http://stackoverflow.com/questions/11135392/webservice-returns-wrong-content-type-response-header mówi o tym błędzie – BugFinder

Odpowiedz