c# XmlDsig.在根元素中设置签名元素
本文关键字:元素 设置 XmlDsig | 更新日期: 2023-09-27 18:15:00
我有一个这样的XML:
<raiz>
<nro_orden>123</nro_orden>
<datos>Dadada</datos>
</raiz>
我需要用这样的格式签名:
<raiz>
<Signature>
(...)
<nro_orden>123</nro_orden>
<datos>Dadada</datos>
</Signature>
</raiz>
我尝试了两种方法(使用包络法和包络法)。但是在第一种方法中,我得到了数据顶部的签名元素:
<Signature>
(...)
<Object Id="20150924105053">
<raiz>
<nro_orden>123</nro_orden>
<datos>Dadada</datos>
</raiz>
</Object>
</Signature>
使用第二种方法(信封),我在数据的底部得到签名元素:
<raiz>
<nro_orden>123</nro_orden>
<datos>Dadada</datos>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
(...)
</Signature>
</raiz>
我只需要根元素()包装整个XML(包括签名)。我知道,在对XML进行签名之后,没有办法修改某些内容,否则签名就会损坏。所以,如果你对我的问题有什么想法,请让我知道。
提前感谢您的宝贵时间。
我用一种有趣的方式解决了这个问题。我不认为它会工作,但确实(外部网络服务接受它)。
我将带符号的XML转换为字符串,并在开头和结尾使用标签连接,如下所示:
string some = "<raiz>"+ xmlSigned.ToString() + "</raiz>";
它没有改变符号的任何值。