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