Rodrigo Godoy
Rodrigo Godoy

Reputation: 11

'Malformed reference element' when I use only numbers in XML id

I get an error,

Malformed reference element

when I use only numbers, if the Id has any letters, it works perfectly.

Example:

Id="01500843090020001000000122024073010080819774" returns Malformed reference element, but with Id="X1500843090020001000000122024073010080819774" it works.

documento.LoadXml(xml);

var docXml = new SignedXml (documento);

docXml.SigningKey = certificado.GetRSAPrivateKey();
docXml.SignedInfo.CanonicalizationMethod = SignedXml.XmlDsigExcC14NTransformUrl;

var reference = new System.Security.Cryptography.Xml.Reference { Uri = string.Format("#{0}", id) };
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
reference.AddTransform(new XmlDsigExcC14NTransform());
docXml.AddReference(reference);

var keyInfo = new System.Security.Cryptography.Xml.KeyInfo();
keyInfo.AddClause(new KeyInfoX509Data(certificado));

docXml.KeyInfo = keyInfo;
docXml.ComputeSignature();

Upvotes: 1

Views: 40

Answers (0)

Related Questions