How to add custom soap headers in wcf?

后端 未结 2 1155
情歌与酒
情歌与酒 2020-12-01 02:59

Can I add Custom SOAP header in WCF incoming/outgoing messages in basicHttpBinding, like we can add custom authentication header in ASMX web services? Those custom SOAP head

2条回答
  •  爱一瞬间的悲伤
    2020-12-01 03:25

    This solution was simpler for me:

                var client = "Your Service Client"; 
                using (var scope = new OperationContextScope(client.InnerChannel))
                {
                    System.Xml.XmlDocument document = new XmlDocument();
                    XmlElement element = document.CreateElement("wsse", "UsernameToken", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
    
                    XmlElement newChild = null;
                    newChild = document.CreateElement("wsse", "Username", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
                    newChild.InnerText = "finance";
                    element.AppendChild(newChild);
    
                    newChild = document.CreateElement("wsse", "CorporationCode", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
                    newChild.InnerText = "387";
                    element.AppendChild(newChild);
    
                    MessageHeader messageHeader = MessageHeader.CreateHeader("UsernameToken", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", element, false);
    
                    OperationContext.Current.OutgoingMessageHeaders.Add(messageHeader);
    
                    var result = client.GetCorporations(new CorporationType { pageNo = 1 });
                }
    

提交回复
热议问题