我正在使用 .NET 4.0、WCF 和 wshttp 绑定来创建一些 ws 方法。使用 wsHttp 绑定的原因是我需要对身份验证、加密和签名的支持。
当我创建这样的服务并查看 wsdl 时,我看到那里有 wsp:policy 标记。有没有办法以某种方式影响 WCF 配置并删除此标记?
据我了解,可以在没有此标签的情况下进行加密和签名。
我正在使用 .NET 4.0、WCF 和 wshttp 绑定来创建一些 ws 方法。使用 wsHttp 绑定的原因是我需要对身份验证、加密和签名的支持。
当我创建这样的服务并查看 wsdl 时,我看到那里有 wsp:policy 标记。有没有办法以某种方式影响 WCF 配置并删除此标记?
据我了解,可以在没有此标签的情况下进行加密和签名。
您可以用自己的 WSDL ( serviceMetadata - externalMetadataLocation) 替换生成的 WSDL。这是我确信您可以实现您想要的目标的唯一方法,因为您将从头开始编写 WSDL。有用于修改生成的 WSDL 和策略的扩展点 - IWsdlExportExtension和IPolicyExportExtension但我认为您将只能向 WSDL 添加新项目,但不能删除由 API 功能(内置安全性等)添加的项目。
顺便提一句。恕我直言,删除策略是非常糟糕的主意,因为 WSDL 应该描述服务,并且它应该是开发人员创建客户端应用程序所需的唯一描述。如果您删除策略,您的 WSDL 将仅包含有关您的服务的部分信息,它将变得无用。你肯定会破坏与代理生成工具的兼容性。我有关于这个话题的相关问题。