«Неверный ссылочный элемент», когда я использую только цифры, если в идентификаторе есть буквы, он работает отлично. Пример: Id="01500843090020001000000122024073010080819774" возвращает неверный ссылочный элемент, но с Id="X1500843090020001000000122024073010080819774" это работает.
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();
Подробнее здесь: https://stackoverflow.com/questions/788 ... ly-numbers