2016-03-02 9 views
1

Мы подписываем элементы xml с помощью класса SignedXml. Требование - добавить узел подписи в Ws Security для связи с сервисом.Как добавить префикс в элемент подписи в C#

Мы смогли подписать элементы и проверить их. В этом случае образец кода 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> .... </signature>. но мы хотим сгенерировать его как < ds:signature> .... </ds:signature>

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

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

ответ

0

Поскольку это достаточно общий вопрос, this post might be helpful to someone looking for the same information.

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

+0

Благодарим за это, мы пробовали то же самое, что и прохождение подписи без префикса, но все же застряли в ошибке безопасности WS в .NET. Вы передали эту ошибку в .NET или какую-либо ссылку? – Oxygen

 Смежные вопросы

  • Нет связанных вопросов^_^