民间, 我正在构建一个RESTful服务,它通过在XML文档底部提供XMLDSIG XML签名来加以保护。当我将此文档发送到服务器时,WCF服务正在对HTTP有效负载执行XML反序列化方法,以便为我提供C#类。不幸的是,为了使这种反序列化正确发生,C#类定义需要具有定义XML签名所需的所有属性,即使我只需要安全性。
所以,我想做的是:
这可能吗?如果是这样,我在哪里可以开始寻找如何做到这一点?我觉得我很接近我没找到合适的WCF注入点。
P.S。一切都是.NET 4.0,Visual Studio 2010,IIS 7 +。
答案 0 :(得分:0)
想出来。我创建了一个XmlSignatureVerificationConfigurationSection类,它允许我将一个直接调用的XML元素放入我的WCF行为配置中。然后,此配置部分将WCF指向我的行为扩展名SignatureVerificationBehavior的数据类型。然后,此行为指向我编写的自定义Message Inspector,SignatureVerificationInspector。此检查器弹出打开消息,从有效负载中删除签名节点,验证签名,然后将新的(签名已删除)消息发送回管道,其中服务定义仍然无法识别签名的存在。