我正在使用.NET 4.0,WCF和wshttp綁定來創建一些ws方法。使用wsHttp綁定的原因是我需要支持身份驗證,加密和簽名。WCF,wsHttpBinding和wsp:政策
當我創建這樣的服務並查看wsdl時,我看到那裏有wsp:policy標記。有沒有辦法以某種方式影響WCF配置並刪除此標籤?
據我所知,可以在沒有此標籤的情況下進行加密和簽名。
我正在使用.NET 4.0,WCF和wshttp綁定來創建一些ws方法。使用wsHttp綁定的原因是我需要支持身份驗證,加密和簽名。WCF,wsHttpBinding和wsp:政策
當我創建這樣的服務並查看wsdl時,我看到那裏有wsp:policy標記。有沒有辦法以某種方式影響WCF配置並刪除此標籤?
據我所知,可以在沒有此標籤的情況下進行加密和簽名。
您可以用您自己的WSDL替換生成的WSDL(serviceMetadata - externalMetadataLocation)。這是我確信你可以實現你想要的東西的唯一方法,因爲你將從頭開始編寫WSDL。有可修改生成的WSDL和策略的擴展點 - IWsdlExportExtension和IPolicyExportExtension,但我認爲您只能將新項添加到WSDL,但不能刪除通過API功能(內置安全性等)添加的項目。
順便說一句。恕我直言,刪除策略是非常糟糕的主意,因爲WSDL應該描述服務,並且它應該是開發人員需要創建客戶端應用程序的唯一描述。如果您刪除策略,您的WSDL將僅涵蓋有關您的服務的部分信息,它將變得毫無用處。當然你會制動與代理生成工具的兼容性。我有關於這個話題的question。
嘿拉迪斯拉夫,10x的迴應。唯一的原因是因爲我的WS將被一些Java系統使用,這些系統可能因此標記而出現問題。我會記住你的評論,並將這個標籤作爲我的wsdl定義的一部分。一個相關的問題,我可以使用externalMetadataLocation屬性來定義XSD定義的路徑,還是僅用於wsdl? – buhtla 2010-11-24 11:23:05