Настройка заголовка в мыло с ASP.NET 3.5 WCF
-
24-09-2019 - |
Вопрос
Я довольно новичок в мыло, так что иди легко на меня. Я пытаюсь настроить сервис SOAP, который принимает следующий формат заголовка:
<soap:Header>
<wsse:Security>
<wsse:UsernameToken wsu:Id='SecurityToken-securityToken'>
<wsse:Username>Username</wsse:Username>
<wsse:Password>Password</wsse:Password>
<wsu:Created>Timestamp</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
Приложение, которое я включаю эту услугу в веб-приложение ASP.NET 3.5, и я уже настроил конечную точку SOAP, используя WCF. Я настроил базовую услугу, чтобы убедиться, что WCF работает, и он работает нормально (игнорируя заголовок). Я слышал, что вышеуказанный формат следует за помощью WS-Security, поэтому я добавил WSHTTPBinding в Web.config:
<service name="Nexternal.Service.XMLTools.VNService"
behaviorConfiguration="VNServiceBehavior">
<!--The first endpoint would be picked up from the confirg
this shows how the config can be overriden with the service host-->
<endpoint address=""
binding="wsHttpBinding"
contract="Nexternal.Service.XMLTools.IVNService"/>
</service>
Я скачал тестовый жгут (SOAPUI) и вставил в тестовое сообщение с вышеуказанным заголовком, и он вернулся с ошибкой 400 плохого запроса.
... За что это стоит, я запускаю Visual Studio 2008, используя IIS7.
Я чувствую, что я иду в круги, поэтому любая помощь была бы потрясающей. Заранее спасибо.
Решение
Догадаться. Я смог настроить то, что было сгенерировано в WSDL, используя MessageContracts
(http://msdn.microsoft.com/en-us/library/ms730255.aspx.). Это позволило мне указать формат заголовка. Для каждого узла, которые содержали детские узлы, я создал класс для представления этого узла и использовал сериализующие инструменты .NET (например, XmlElementAttribute
, XmlArrayAttribute
, и т. д.) Укажите, как это должно быть отражено в генерированном WSDL
. DataContract
также можно использовать хотя из моего понимания DataContract
Был только для основных форматов, и не позволяйте вам действительно погрузиться в то, как он отформатирован.
Надеюсь, это поможет кому-либо подобные проблемы.
Если кто-то, кто знает больше о SOAP, находит ответ, пожалуйста, дайте мне знать. Ввод очень ценится.