我想要实现的是格式化以下响应消息:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2004/08/addressing/fault</a:Action>
<a:To s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
</s:Header>
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:FailedAuthentication</faultcode>
<faultstring xml:lang="de-DE">Mindestens ein Sicherheitstoken in der Nachricht konnte nicht validiert werden.</faultstring>
<detail>
<myCustonDetail>
...
</myCustonDetail>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
我知道我可以使用FaultContract和IErrorHandler来实现这一点,但是这只处理在服务方法本身内引发异常时的情况。但是在调用service方法之前也会引发异常(在检查Message Security等期间)。然后默认情况下返回没有detail部分的消息。
不幸的是,为了满足一些标准要求,我需要为每个故障响应附加详细信息。在.NET中有可能吗? (没有编写我必须使用的WS- *安全标准的自己的实现)