SignedXml CanonicalizationMethod - http://www.w3.org/2006/12/xml-c14n11(SignedXML规范化方法-http://www.w3.org/2006/12/xml-c14n11)

本文介绍了SignedXML规范化方法-http://www.w3.org/2006/12/xml-c14n11的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以对SignedXml使用http://www.w3.org/2006/12/xml-c14n11CanonicalizationMethod?

SignedXml signedXml = new SignedXml(xmlDoc);
signedXml.SignedInfo.CanonicalizationMethod = "http://www.w3.org/2006/12/xml-c14n11";

正在抛出

System.Security.Cryptography.CryptographicException: Could not create the XML tr
ansformation identified by the URI http://www.w3.org/2006/12/xml-c14n11.

谢谢!

推荐答案

看起来还不像是.NET实现的。

https://msdn.microsoft.com/en-us/library/system.security.cryptography.xml.signedinfo.canonicalizationmethod(v=vs.110).aspx

您可能必须创建自己的转换类,如下所示:

public class XmlDsigC14N11Transform: XmlDsigC14NTransform
    {
        public override void LoadInput(object obj)
        {
            //do something here
            base.LoadInput(obj);
        }

        public override object GetOutput()
        {
            //do something here
            return base.GetOutput();
        }
    }

并将您的转换映射到"http://www.w3.org/2006/12/xml-c14n11"。

CryptoConfig.AddAlgorithm(typeof(XmlDsigC14N11Transform), "http://www.w3.org/2006/12/xml-c14n11");

这篇关于SignedXML规范化方法-http://www.w3.org/2006/12/xml-c14n11的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!