业务场景:
- 更新可以包含包。
- 包可以包含更改。
- 每个包裹都必须经过某人的批准。
- 经批准后,不得更改包裹。
要执行,更新必须具有 100% 批准的包。
发展思路:
- 所有数据都保存为 XML 文件。
- Xml“包”元素将在批准后签名。
问题:
无论我尝试什么和谷歌搜索,所有示例总是关于签署整个文档或使用整个文档的相同密钥签署子元素。但我想用不同的密钥签署每个子元素(包),即批准包的人的密钥。所以我需要每个元素一个签名。虽然所有 .NET Framework 功能似乎为了支持这一点,我得到了奇怪的行为。例如,在对元素进行签名时,您需要提供元素的 URI。如果我给所有包提供相同的 ID,它会验证,如果我给每个元素一个不同的 ID 并在它们各自的签名中引用这个 ID,我只能验证第一个。首先,ID 的想法对我的场景没有意义,因为我的签名与我的元素处于 1:1 关系。
我可以发布代码,但在发布之前,我想知道这样的事情是否可行?我没有看到任何会禁止我想做的事情,但我也没有看到任何迹象表明它也应该起作用。有没有人这样做过,或者任何人都可以指出我还没有找到的资源吗?或者有没有人更好地了解如何使用标准来实现要求?