首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# UBL2.1签名

C# UBL2.1签名
EN

Stack Overflow用户
提问于 2019-01-03 12:09:22
回答 2查看 3.2K关注 0票数 1

我需要签署使用c#的UBL2.1发票。问题是,在签名之后,我需要嵌入Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"

UBLExtensions元素,如下所示

代码语言:javascript
复制
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

稍后我尝试添加这些元素,但是签名被认为无效。

我没有任何签署XML文件的经验,所以任何帮助都会得到很大的认可。

编辑

初始的XML文件是

代码语言:javascript
复制
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
   ... Invoice Elements
</Invoice>

我需要生产出这样的东西

代码语言:javascript
复制
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
   <ext:UBLExtensions>
      <ext:UBLExtension xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sig="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2">
         <ext:ExtensionContent>
            <sig:UBLDocumentSignatures>
               <sac:SignatureInformation>
                  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
                     ... signature contents produced by signed xml class
                  </Signature>
               </sac:SignatureInformation>
            </sig:UBLDocumentSignatures>
         </ext:ExtensionContent>
      </ext:UBLExtension>
   </ext:UBLExtensions>
    ... Invoice Elements
</Invoice>

如果稍后添加这些元素,则认为签名无效。

再一次,任何帮助都将受到高度赞赏。

指向实际签名文件的链接是:xml

EN

回答 2

Stack Overflow用户

发布于 2019-01-22 18:10:08

问题是,在签署过程之前,扩展元素必须放在文档上。我真丢脸!谢谢你的时间!

票数 1
EN

Stack Overflow用户

发布于 2019-09-20 08:49:16

这个怎么样..。

代码语言:javascript
复制
var nodes = xmlDoc.GetElementsByTagName("Invoice");
nodes(0).AppendChild(signature);
xmlDoc.Save(xmlFilePath);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54022024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档