C# XmlDsig. Установить элементы подписи внутри корневого элемента
У меня есть 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 подписан, нет возможности что-либо изменить, или подпись будет повреждена. Итак, пожалуйста, если у вас есть идея моей проблемы, дайте мне знать.
Заранее спасибо, что нашли время.
1 ответ
Ну, я решил это забавным способом. Я не думал, что это будет работать, но сделал (внешний веб-сервис принял это).
Я преобразовал подписанный XML в строку и объединил его с тегом в начале и конце следующим образом:
string some = "<raiz>"+ xmlSigned.ToString() + "</raiz>";
Это не изменило значение знака. Если это кому-то поможет...