Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / подпись в SOAP Envelope / 5 сообщений из 5, страница 1 из 1
16.06.2014, 12:03
    #38670181
Alexander Us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпись в SOAP Envelope
ув. Коллеги, подскажите пожалуйста как создать подпись в SOAP Envelope.

подробнее тут
...
Рейтинг: 0 / 0
16.06.2014, 17:36
    #38670772
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпись в SOAP Envelope
Alexander UsSOAP

у менять есть лыжи, канифоль и обрывки обоев. так как же мне сделать электронную подпись?
...
Рейтинг: 0 / 0
16.06.2014, 17:46
    #38670790
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпись в SOAP Envelope
Alexander Usув. Коллеги, подскажите пожалуйста как создать подпись в SOAP Envelope.

подробнее тут

решил убедиться, что всё в порядке и гугло ещё работает

http://msdn.microsoft.com/en-us/library/77hkfhh8(v=VS.100).aspx

а то мало ли...
...
Рейтинг: 0 / 0
16.06.2014, 18:20
    #38670832
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпись в SOAP Envelope
...
Рейтинг: 0 / 0
16.06.2014, 20:18
    #38670925
Alexander Us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подпись в SOAP Envelope
Спасибо ответившим.

В "принципе" код ниже делает подпись, которая верифицируется в .NET.

Но сам сервис написян на яве и он ожидает другое значение DigestValue для боди.
При этом DigestValue для TimeStamp совпадает.

Похожая проблеиа описана тут: DigestValue in XMLSignature in Java is different from C#

Говорят, если реализовать на WCF, то проблема снимается. К сожалению у меня нет опыта с WCF...

Мож. кто подкинет пример?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
 Sub SignXML(doc As XmlDocument, cert As X509Certificate2)
        Dim signedXml As New SignedXmlWithId(doc)

        signedXml.SigningKey = cert.PrivateKey
        signedXml.SignedInfo.CanonicalizationMethod = Security.Cryptography.Xml.SignedXml.XmlDsigExcC14NTransformUrl

        Dim refBody As New Reference()
        refBody.Uri = "#id-5"

        Dim refTmSt As New Reference()
        refTmSt.Uri = "#Timestamp-4"

        Dim trnBody As New XmlDsigExcC14NTransform()
        Dim trnTsSt As New XmlDsigExcC14NTransform()

        refBody.AddTransform(trnBody)
        refTmSt.AddTransform(trnTsSt)

        signedXml.AddReference(refTmSt)
        signedXml.AddReference(refBody)

        signedXml.ComputeSignature()
        Dim xmlDigitalSignature As XmlElement = signedXml.GetXml()

        doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))

        Dim SignedXMLString = doc.OuterXml
    End Sub

'этот класс для обхода проблемы нечитаемости префикса ID 
Public Class SignedXmlWithId
    Inherits SignedXml
    Public Sub New(xml As XmlDocument)
        MyBase.New(xml)
    End Sub

    Public Sub New(xmlElement As XmlElement)
        MyBase.New(xmlElement)
    End Sub

    Public Overrides Function GetIdElement(doc As XmlDocument, id As String) As XmlElement
        ' check to see if it's a standard ID reference
        Dim idElem As XmlElement = MyBase.GetIdElement(doc, id)

        If idElem Is Nothing Then
            Dim nsManager As New XmlNamespaceManager(doc.NameTable)
            nsManager.AddNamespace("wsu", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd")

            idElem = TryCast(doc.SelectSingleNode((Convert.ToString("//*[@wsu:Id=""") & id) + """]", nsManager), XmlElement)
        End If

        Return idElem
    End Function
End Class
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / подпись в SOAP Envelope / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]