了解 SignedXml.LoadXml (system.Security.Cryptography.Xml)

Hui Liu-MSFT 41,146 信誉分 Microsoft 供应商
2024-04-29T08:51:50.51+00:00

你好

我正在我的程序上使用数字签名作为订阅许可证,并尝试读取 XML 文件的一部分以检查我的程序是否可以工作。

我搜索了MSDN并找到了这个解释:https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.xml.signedxml.loadxml?view=dotnet-plat-ext-3.1

我知道这是在检查是否在XML上找到“签名”并进行验证,但我只是不明白Loading(LoadXml)如何再次将其加载到签名的XML文件上进行检查。按照我的逻辑,将其加载到XML上应该添加另一个“签名”字段。那么你能向我解释一下 LoadXml 到底是如何工作的吗?

我运行代码没有问题,但我就是无法理解它。

Note:此问题总结整理于:[Understanding SignedXml.LoadXml (system.Security.Cryptography.Xml)](https://learn.microsoft.com/en-us/answers/questions/42359/understanding-signedxml-loadxml-(system-security-c)

Windows Presentation Foundation
Windows Presentation Foundation
.NET Framework 的一部分,它提供统一的编程模型,用于在 Windows 上构建业务线桌面应用程序。
65 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 35,556 信誉分 Microsoft 供应商
    2024-04-29T09:47:32.35+00:00

    我会在您提供的链接中给出我对方法的理解。.VerifyDetachedSignature 的目的是确定 Signature 属性是否使用签名中的公钥进行验证。

    1. 使用 xmlDocument.Load() 将文件转换为 xml。如果失败并出现错误 CryptographicException,则表示 value 参数不包含有效的 SignatureValue/SignedInfo 属性。如果成功,则必须包含元素 Signature
    2. 然后找到“签名”节点以创建新的 XmlNodeList 对象。
    3. 将 XmlNodeList 对象加载到 signedXml
    4. 最后要检查签名是否使用签名中的公钥

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助