【问题标题】:Replace file reference in detached XML signature (.NET)替换分离的 XML 签名 (.NET) 中的文件引用
【发布时间】:2014-02-21 13:16:25
【问题描述】:

我需要使用分离的签名对一些 XML 文档进行签名,然后通过电子邮件将它们发送给某人,以便他稍后可以验证签名。 我的问题是,对签名文件的引用是一个 URI,只需要绝对路径和文件名。如何将其更改为仅文件名?因为,我不能保证这些文件存在于接收方的完全相同的位置。 类似的东西

 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();

提前致谢, 冈瑟

【问题讨论】:

  • 没有办法指定如何解析引用(在相对 Uri 的情况下)?例如,在我们的 SecureBlackbox 中,这是通过事件处理的。

标签: c# xml signature


【解决方案1】:

将当前工作目录更改为 XML 文件位置:

var current=Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(xml_file_directory);
//sign/verify with relative URIs references
Directory.SetCurrentDirectory(curent);

你也可以自己写XmlResolver

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多