Как добавить префикс к элементу подписи в C#

Мы подписываем элементы xml, используя класс SignedXml. Требуется добавить узел подписи в Ws Security для связи со службой.

Мы могли бы подписать элементы и проверить их. В этом случае пример XML-кода, как показано ниже

        X509Certificate2 certificate = new X509Certificate2(CertPath, CertPassword);

    // Create a new XML document.
    XmlDocument doc = new XmlDocument();

    // Format the document to ignore white spaces.
    doc.PreserveWhitespace = false;

    // Load the passed XML file using it's name.
    doc.Load(new XmlTextReader(FileName));

    SignedXml signedXml = new SignedXml(doc);
    signedXml.SigningKey = certificate.PrivateKey;


    // Create a reference to be signed.
    Reference reference = new Reference();

    reference.Uri = "#" + elementID;

    // Add an enveloped transformation to the reference.
     XmlDsigEnvelopedSignatureTransform envTransform = new XmlDsigEnvelopedSignatureTransform();
    reference.AddTransform(envTransform);

    // Add the reference to the SignedXml object.
    signedXml.AddReference(reference);



    // Create a new KeyInfo object.
    KeyInfo keyInfo = new KeyInfo();

    // Load the certificate into a KeyInfoX509Data object
    // and add it to the KeyInfo object.
    keyInfo.AddClause(new KeyInfoX509Data(certificate));

    // Add the KeyInfo object to the SignedXml object.
    signedXml.KeyInfo = keyInfo;

    // Compute the signature.
    signedXml.ComputeSignature();


    // Get the XML representation of the signature and save
    // it to an XmlElement object.
    XmlElement xmlDigitalSignature = signedXml.GetXml();

с помощью этого элемента подписи, сгенерированного как < signature> .... </signature>, но мы хотим сгенерировать его как < ds:signature> .... </ds:signature>

Попытка установить префикс явно, но затем подпись не проверяется.

Не могли бы вы помочь, как мы можем этого добиться?

1 ответ

Поскольку это достаточно общий вопрос, этот пост может быть полезен для тех, кто ищет ту же информацию.

Для конкретного проекта, над которым я работаю, представление IRS A2A, это то, что я использовал, когда думал, что мне нужно добавить префиксы к Signature элемент. Однако, обсуждая с некоторыми другими пользователями SO, я отказался от идеи добавления префиксов к Signature элемент, так как он на самом деле не нужен.

Другие вопросы по тегам