首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SignedXml.LoadXML((XmlElement)nodeList[0])抛出“畸形元素SignedInfo/Reference”

SignedXml.LoadXML((XmlElement)nodeList[0])抛出“畸形元素SignedInfo/Reference”
EN

Stack Overflow用户
提问于 2022-03-18 09:35:29
回答 1查看 108关注 0票数 0

从已签名文档的XML读取SignedInfo时,当调用

代码语言:javascript
复制
SignedXml signedXml;
Directory.SetCurrentDirectory(TmpDir);
XmlDocument xmlDoc = new XmlDocument();

foreach(Relationship signature in signs)
{
   if(_InMemoryData.ContainsKey(signature.FilePath) || File.Exists(signature.FilePath))
    {
        using(Stream xmlStream = LoadDataItem(signature.FilePath))
        {
            xmlDoc.Load(xmlStream);
            XmlNodeList nodeList = xmlDoc.GetElementsByTagName("Signature");
            if(nodeList.Count == 1)
            {
                signedXml = new SignedXml(xmlDoc);
                signedXml.LoadXml((XmlElement)nodeList[0]); //throws

在signedXml.LoadXml((XmlElement)nodeList)上;它抛出了带有message signedXml.LoadXml错误元素SignedInfo/Reference的异常“。

这个XML的唯一奇怪之处在于它有145个接收者。然而,其他软件设法阅读这没有任何问题,所以我不认为这是一个问题。

用“畸形元素.”搜索异常大多数情况下,元素的Id值中包含数字,这是不允许的。检查了其他类似的XML文件,它们都有编号,所以不应该是这样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-18 10:11:58

在设置和调试了一些系统库之后,我发现了它抛出的位置,默认情况下,它只允许100个接收者。要改变这一点,我需要在"Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\Security“中添加一个名为"SignedXmlMaxReferencesPerSignedInfo”的新注册表项,其DWord值大于145,并开始工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71524954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档