Правильный способ передачи токена имени пользователя WSSE для веб-службы SOAP

Я пытаюсь использовать веб-службу через соответствующий wsdl. Эта служба зависит от аутентификации, соответствующей базовому профилю безопасности 1 Web Services Security. Элемент UsernameToken для ссылки на исходное мыльное сообщение с использованием BasicHttpBinding равен


  
    
      
        
          1-asdfds
        
      
    
  

. Если я изменю привязку на

var wsHttpBinding = new WSHttpBinding(SecurityMode.TransportWithMessageCredential);
wsHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
wsHttpBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;

, то получится сообщение SOAP


  
    http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT
    urn:uuid:eeb75457-f29e-4c65-b4bf-b580da26e0c5
    
      http://www.w3.org/2005/08/addressing/anonymous
    
    https://secure-ausomxana.crmondemand.com/Services/Integration
    
      
        2011-05-02T13:30:09.360Z
        2011-05-02T13:35:09.360Z
      
      
        Bob
        1234
      
    
  
  
    
      http://schemas.xmlsoap.org/ws/2005/02/sc/sct
      http://schemas.xmlsoap.org/ws/2005/02/trust/Issue
      
        bI4xuyKwZ8OkQYBRnz2LDNV+zhIOnl0nwP24yI1QAwA=
      
      256
    
  

Это кажется очень близким, однако, похоже, на самом деле зашифровал тело мыльного сообщения, чего я НЕ хочу.

Если я укажу wsHttpBinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName; с использованием только SecurityMode.Transport он возвращается туда, где он говорит, что он анонимен.

Какое последнее препятствие я не могу преодолеть?

Окончательное решение: Я решил опубликовать это, если это кому-то поможет, вот ' Здесь не особо сильно отличается, за исключением того, что объект UserToken заключен в узел безопасности, который требовался моему поставщику услуг, и, похоже, его вывод из моих предыдущих примеров из того, что я мог получить.


      
    
      
        
        
          
          
        
               
    
  
  
    
              
        
          
            USERNAME
            PASSWORD
          
        
      
    
  

См. С C # , Потребитель WCF SOAP, который использует аутентификацию в виде обычного текста WSSE? о том, как настроить его с помощью кода, а не конфигурации

55
задан Community 23 May 2017 в 02:25
поделиться