【发布时间】:2017-11-13 12:11:58
【问题描述】:
当我尝试签署 XML (SAML) 时,我在 Web Api ASP.NET Core (2.0.2) 中收到此错误:
System.InvalidOperationException:XML 中有错误 文档。 ---> System.InvalidOperationException:实例验证 错误:'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256' 不是 SignatureMethodAlgorithm 的有效值。
目标是完整的框架 - .Net 4.7.1。
如果我重新定位到 .Net 4.6.2 和 .Net 4.7,代码可以正常工作。
更新: 结果我使用了一个第三方库,它期望 SignedXml 中的默认哈希算法是 sha1。作为 .net 4.7.1 的一部分,这已更改为 sha256。这实际上不是签名问题,而是反序列化问题。我通过根据 .net 4.7.1 文档https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.7-4.7.1 设置上下文切换来解决此问题@
【问题讨论】:
-
没有任何代码,这不是一个很好的 SO 问题。最好在 ms 支持处询问。
-
作为一个建议,也许你现在have to add它。
-
原来我使用了一个第三方库,它期望 SignedXml 中的默认哈希算法为 sha1。作为 .net 4.7.1 的一部分,这已更改为 sha256。这实际上不是签名问题,而是反序列化问题。我通过根据 .net 4.7.1 文档docs.microsoft.com/en-us/dotnet/framework/migration-guide/… 设置上下文切换来解决此问题