我试图实现需要封装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规范中没有这种要求的单个元素名称?