0

我有一个这样的 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 进行签名后,就无法修改某些内容,否则签名就会损坏。因此,如果您对我的问题有任何想法,请告诉我。

提前感谢您抽出宝贵时间。

4

1 回答 1

0

好吧,我以一种有趣的方式解决了它。我不认为它会起作用,但确实起作用了(外部网络服务接受了它)。

我将签名的 XML 转换为字符串,并在开头和结尾处将其与标签连接起来,如下所示:

string some = "<raiz>"+ xmlSigned.ToString() + "</raiz>";

它没有改变符号的任何值。如果对某人有帮助...

于 2015-10-01T15:40:26.947 回答