C# 使用数字签名对XML进行签名

C# 使用数字签名对XML进行签名,c#,xml,digital-signature,signing,C#,Xml,Digital Signature,Signing,我正在使用一些web服务,它要求通过HTTP post请求发布数字签名的XML。 他们只给了我一个文件(key.dat),我应该将其应用于我的XML。 我该怎么做?您可以查看: 谢谢,但我真正需要的是将key.dat加密到该密钥中。 private static XmlElement GetXmlDigitalSignature(XmlDocument x, AsymmetricAlgorithm key) { var signedXml = new SignedXml(x) { Sig

我正在使用一些web服务,它要求通过HTTP post请求发布数字签名的XML。
他们只给了我一个文件(key.dat),我应该将其应用于我的XML。
我该怎么做?

您可以查看:


谢谢,但我真正需要的是将key.dat加密到该密钥中。
private static XmlElement GetXmlDigitalSignature(XmlDocument x, AsymmetricAlgorithm key)
{
    var signedXml = new SignedXml(x) { SigningKey = key };
    var reference = new Reference { Uri = "", TransformChain = new TransformChain(), };

    reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());

    signedXml.AddReference(reference);
    signedXml.ComputeSignature();

    return signedXml.GetXml();
}

var signature = GetXmlDigitalSignature(xmlDocument, algorithm);
xmlDocument.FirstChild.AppendChild(xmlDocument.ImportNode(signature, true));