Статус: Участник
Группы: Участники
Зарегистрирован: 26.06.2009(UTC) Сообщений: 12 Откуда: Moscow
|
Добрый день! При подписывании XML возникает ошибка "Неверно сформированный элемент ссылки.". В подписываемом элементе Id указан следующим образом: Код:<soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="test">
В программе ссылка указывается следующим образом: При вызове метода ComputeSignature появляется указанная выше ошибка. Подскажите, плз, в чем не прав?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Проблема в namespace атрибута Id, который отличается от namespace узла soapenv. Есть несколько решений 1. Удалить у атрибута Id namespace 2. Добавить к узлу soapenv:Body другой атрибут, на который ссылаться при подписи. 3. Ссылаться при подписи на весь документ, а узел выбирать соответствующими transform |
С уважением, Александр. |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.06.2009(UTC) Сообщений: 12 Откуда: Moscow
|
Т.е., как я понимаю, решить эту проблему только на стороне получателя нельзя?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Оказывается есть другой более простой метод - перекрыть метод GetIdElement у SignedXml и при подписи и проверке пользоваться этим классом. Код:
class MySignedXml : SignedXml
{
public MySignedXml(XmlDocument document)
:base(document)
{
}
public override XmlElement GetIdElement(XmlDocument document, string idValue)
{
XmlNameTable myXmlNameTable = new NameTable();
XmlNamespaceManager myNamespacemanager = new XmlNamespaceManager(myXmlNameTable);
myNamespacemanager.AddNamespace( "wsu",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" );
XmlNodeList lst = document.SelectNodes("//*[@wsu:Id='" + idValue + "' or @wsu:ID='" + idValue +
"' or @wsu:ID='" + idValue + "']", myNamespacemanager);
if (lst.Count != 1)
return null;
return (XmlElement)lst.Item(0);
}
}
|
С уважением, Александр. |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.06.2009(UTC) Сообщений: 12 Откуда: Moscow
|
Спасибо, все получилось! :)
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close