我需要签署一些带有分离签名的XML文档,然后通过电子邮件将其发送给某人,以便他以后可以验证签名。 我的问题是,对签名文件的引用是一个URI,只接受绝对路径和文件名。怎么能改成只有文件名? Beacsue,我不能保证这个文件存在于接收器的完全相同的位置。 像
这样的东西 reference.Uri = "file_to_sign.xml";
只是不起作用,因为它不是有效的URI。 这是代码:
var signer = new SignedXml(xmlDoc);
signer.KeyInfo = new KeyInfo();
signer.KeyInfo.AddClause(new RSAKeyValue(key));
signer.SigningKey = key;
var reference = new Reference();
reference.Uri = "file://C:/data/path/file_to_sign.xml";
signer.AddReference(reference);
signer.ComputeSignature();
提前致谢, 京特
答案 0 :(得分:0)
将当前工作目录更改为XML文件位置:
var current=Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(xml_file_directory);
//sign/verify with relative URIs references
Directory.SetCurrentDirectory(curent);
您还可以编写自己的XmlResolver