XAdES XML签名 - 在对象标记内添加引用

时间:2017-07-17 08:33:54

标签: c# xml x509certificate

提前感谢您的帮助。

我正在尝试使用XAdES签署XML文件,并在c#中使用X509证书,我能够在XML文件中添加对id的引用。但是,当我尝试引用外部文件时,我得到一个异常"无法解析Uri"

我用Google搜索,并且找不到任何有关我错误的正面结果。分享我在下面尝试过的一段代码

// Create a reference to be signed.
            Reference reference = new Reference();

            reference.Uri = "test.xml";
            reference.Id = "Id-Manifest";

            // Add the Reference object to the Signature object.
            XMLSignature.SignedInfo.AddReference(reference);

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

分享对我有用的解决方案!

我必须在初始化Reference对象时将文件作为内存流传递,如下所示" reference.Uri" value应与初始化Reference对象时传递的文件名相同

// Create a reference to be signed.
            Reference reference = new Reference(System.IO.File.Open(xbrlPath, System.IO.FileMode.Open));

            reference.Uri = "test.xml";
            reference.Id = "Id-Manifest";

            // Add the Reference object to the Signature object.
            XMLSignature.SignedInfo.AddReference(reference);