- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
当存在命名空间前缀时,无法通过 Id 属性对元素进行签名:
void Main()
{
var doc = new XmlDocument();
doc.LoadXml("<root xmlns:u=\"myuri\"><test u:Id=\"_0\">Zebra</test></root>");
SignedXml signedXml = new SignedXml(doc);
signedXml.SigningKey = new RSACryptoServiceProvider();
Reference reference = new Reference("#_0");
signedXml.AddReference(reference);
signedXml.ComputeSignature();
}
ComputeSignature()
将在这里失败并显示“格式错误的引用元素”,应该如何完成?
最佳答案
我们使用的方法是继承 System.Security.Cryptography.Xml.SignedXml
类...
public class SignedXmlWithId : SignedXml
{
public SignedXmlWithId(XmlDocument xml) : base(xml)
{
}
public SignedXmlWithId(XmlElement xmlElement)
: base(xmlElement)
{
}
public override XmlElement GetIdElement(XmlDocument doc, string id)
{
// check to see if it's a standard ID reference
XmlElement idElem = base.GetIdElement(doc, id);
if (idElem == null)
{
XmlNamespaceManager nsManager = new XmlNamespaceManager(doc.NameTable);
nsManager.AddNamespace("wsu", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");
idElem = doc.SelectSingleNode("//*[@wsu:Id=\"" + id + "\"]", nsManager) as XmlElement;
}
return idElem;
}
}
关于c# - 添加基于带有 SignedXml 类的 Id 属性的引用时出现“格式错误的引用元素”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5099156/
我一直在努力使 .NET 中的 XMLDSIG 支持正常运行,更具体地说是 SignedXml 类。我正在实现第三方服务,他们最近才开始要求所有消息都必须进行数字签名... 我的问题是,我似乎无法生成
当我签署包含 namespace 前缀的 XML 文档时出现问题和命名空间引用,然后对其进行验证。验证总是失败(返回 false)在这种情况下。当我删除命名空间前缀和来自 XML 的 namespac
我想根据机器存储中的证书验证 SignedXml 中的签名。此代码用于验证签名: internal bool VerifySignature(XmlDocument xml) { var si
这里想请教一下SignedXml.CheckSignature的原理 我们知道,如果我们调用 verifySignatureOnly = false 的函数,它可以验证证书。 [ComVisibleA
我需要你的帮助。 因此,我在 java 上生成了带有 Xml 签名的文档,当我尝试在 C# 上进行验证时,我得到了 false。然后我在 C# 上生成了带有签名的相同文档,就可以了。返回true。 这
我正在努力让这个加密解密正常工作。我正在使用 this Wolfwyrd 和 this 提供的类(class)说明。 代码如下: RSACryptoServiceProvider rsaKey = E
在 C++ 中是否有等同于 SignedXML visual 的类(我的意思是不依赖于 .net 框架)? 最佳答案 您可以使用 libxml 从 Windows C++ 应用程序对 XML 进行数字
我连接到一个外部 Web 服务,该服务在 2018 年 5 月中旬之前一直完美无缺地运行。突然间,我开始收到带有消息“格式错误的 XML 签名”的 CryptographicException。我的调
我已经查看了此处关于此问题的其他帖子,但似乎都没有解决我的情况。 上周我一直在尝试验证 SAML 断言,我有 2 个客户向我发送了 SAML,但我无法验证它。 主要过程是我们得到一个 base64 编
我正在尝试使用 SHA256 对 XML 文档进行数字签名。 我正在尝试使用 Security.Cryptography.dll为此。 这是我的代码- CryptoConfig.AddAlgorith
我需要验证签名的 xml。 在 c# 中运行时,会出现下一个错误:“遇到未知转换。”。但是在java中运行它正确地验证了xml。 看起来 .net 框架无法识别 xmldsig-filter2。在 c
我正在为使用 XAdES 的消息签名而苦恼。我已经搜索了将我带到下面代码的解决方案。但是我尝试连接的服务告诉我签名错误。我做错了什么? public static class Signature
当 SignedXml.CheckSignature(AsymmetricAlgorithm key)返回 true (或 false ),这到底代表什么? 这是否意味着 Signature已验证;或
我知道如何使用 SignedXml 签署 XML 文档 ( https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptogra
我正在尝试遵循以下帖子中的解决方案,以便能够使用 CNG 私钥作为我的 SignedXml 的签名 key 。 "Invalid provider type specified" Cryptograp
当存在命名空间前缀时,无法通过 Id 属性对元素进行签名: void Main() { var doc = new XmlDocument(); doc.LoadXml("Zebra"
我有一个使用 .NET 3.5 Framework 构建的 Windows 窗体应用程序,该应用程序自行托管 WCF 服务。该服务和应用程序可以自行正常运行。 考虑到是否可以在 app.config
我正在编写一段代码来验证 X509 证书中的 Xml 签名,并在主题行中收到异常消息。 我的示例代码 Dim cert As X509Certificate2 = GetCertifi
我正在尝试使用存储在 HSM 中的证书来实现 XML 签名的一些演示。 我从此链接中发现了一些有趣的示例: Sign XML Document with X509Certificate2并将其修改为使
我正在尝试使用 SignedXml class 在 C# 中签署 Xml(实际上是 SOAP xml) ,签名阶段成功通过,但当我尝试验证签名时,它告诉我它无效。我对 MSDN 中的示例所做的唯一更改
我是一名优秀的程序员,十分优秀!