我試圖實現需要封裝XML數字簽名(XMLDSIG)的行業規範。相反,符合例子(<Signature>
)我的規格用自己的名義爲簽名元素:.NET不支持非標準XMLDSIG簽名元素名稱
<xs:element name="ensembleSignature" type="dsig:SignatureType" />
<!-- wish this was: <xs:element ref="dsig:Signature" /> -->
所以該元素的名稱不是「簽名」,並在該領域的XML命名空間,而不是DSIG XML命名空間。
隨着大量額外的工作,我可以在.NET中創建這個自定義簽名。
- 使用.NET SignedXml類創建< DSIG:簽名>元素
- 我操作DOM刪除< DSIG:簽名>並重新創建元素作爲< myns名字:ensembleSignature >。
但似乎.NET無法驗證傳入< myns名字:ensembleSignature >,即使我重新命名傳入的元素回< DSIG:簽名>。
我已經在XMLDSIG規範多次,儘管他們所有的例子使用<簽名>它似乎並沒有明確要求這個元素的名稱,即使是封裝的變換。那麼這是SignedXml中的一個錯誤,它只支持XMLDSIG規範中沒有這種要求的單個元素名稱?