c#XmlDsig。在根元素内设置签名元素

时间:2015-09-28 21:48:24

标签: c# xml digital-signature xml-dsig

我有这样的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>

我只需要root元素()包装整个XML(包括签名)。我知道在签署XML之后,无法修改某些内容或签名损坏。所以,如果您对我的问题有所了解,请告诉我。

提前感谢你抽出时间。

1 个答案:

答案 0 :(得分:0)

好吧,我以一种有趣的方式解决了这个问题。我没想到它会工作但是(外部网络服务接受了它)。

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

Brand

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