Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline kubaev  
#1 Оставлено : 26 октября 2016 г. 15:10:59(UTC)
kubaev

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.08.2014(UTC)
Сообщений: 44

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 8 раз в 5 постах
В соответствии с п 2.3.3.9 "ЖТЯИ.00078 01 90 05 ПАК КриптоПро УЦ 2.0. Руководство программиста" отправляю SOAP запрос с телом в виде:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://cryptopro.ru/pki/registration/service/2010/03">
<soapenv:Header/>
<soapenv:Body>
<ns:GetRegRequestRecordList soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<!--Optional:-->
<ns:folderId>ИД ПАПКИ</ns:folderId>
<!--Optional:-->
<ns:regRequestStatus></ns:regRequestStatus>
<!--Optional:-->
<ns:sortColumn>UserStatus</ns:sortColumn>
<!--Optional:-->
<ns:ascending>true</ns:ascending>
<!--Optional:-->
<ns:filterColumn>OID.1.2.643.100.5</ns:filterColumn>
<!--Optional:-->
<ns:filterValue>563</ns:filterValue>
<!--Optional:-->
<ns:filterOperator>8</ns:filterOperator>
<!--Optional:-->
<ns:startNumber>1</ns:startNumber>
<!--Optional:-->
<ns:count>100</ns:count>
<!--Optional:-->
<ns:fetchTotalRowCount>true</ns:fetchTotalRowCount>
</ns:GetRegRequestRecordList>
</soapenv:Body>
</soapenv:Envelope>

Получаю ошибку
Форматтер сгенерировал исключение при попытке десериализовать сообщение: Ошибка десериализации параметра filterValue.
Сообщение InnerException было \"Элемент filterValue
не может иметь дочернего содержимого, которое десериализуется как объект.
Используйте XmlNode[] для десериализации этого шаблона XML.\".
Offline kubaev  
#2 Оставлено : 9 ноября 2016 г. 15:46:34(UTC)
kubaev

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.08.2014(UTC)
Сообщений: 44

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 8 раз в 5 постах
Генерирую запрос на сертификат Криптопро browser plugin в формате PKCS#10

var objPrivateKey = createObject("X509Enrollment.CX509PrivateKey");
objPrivateKey.ProviderType = 75;

var ContextUser = 1;
var Pkcs10Request = createObject("X509Enrollment.CX509CertificateRequestPkcs10");
Pkcs10Request.InitializeFromPrivateKey(ContextUser, objPrivateKey, "");

var objDn = createObject("X509Enrollment.CX500DistinguishedName");
var subject = 'OID.2.5.4.6=RU, OID.2.5.4.10=ИП Иванов и Ко, OID.2.5.4.11=бобры, OID.2.5.4.3=Иванов Иван Иванович, OID.2.5.4.7=Белгород, ' +
'OID.2.5.4.8=31 Белгородская область, OID.2.5.4.12=директор, OID.2.5.4.42=Иван Иванович, OID.2.5.4.4=Иванов, OID.1.2.840.113549.1.9.1=test@test.ru, ' +
'OID.2.5.4.9=ул. Мокроусова, OID.1.2.643.3.131.1.1=222222222222, OID.1.2.643.100.3=12312312312, OID.1.2.643.100.5=111111111111111';
objDn.Encode(subject, 0x200000);
Pkcs10Request.Subject = objDn;

// Добавление шаблона
var objObjectId = createObject("X509Enrollment.CObjectId");
objObjectId.InitializeFromValue('1.2.643.2.2.46.0.9');
var objTemplateExt = createObject("X509Enrollment.CX509ExtensionTemplate");
objTemplateExt.InitializeEncode(objObjectId, 1, 0);
Pkcs10Request.X509Extensions.Add(objTemplateExt);
var oEnrollment = createObject('x509enrollment.cx509enrollment');
oEnrollment.InitializeFromRequest(Pkcs10Request);
return oEnrollment.CreateRequest(3);

Полученный запрос отправляю в УЦ методом SubmitCertRequest.
Получаю ошибку: Неверный формат запроса.

Отредактировано пользователем 9 ноября 2016 г. 15:47:07(UTC)  | Причина: Не указана

Offline Станислав Королёв  
#3 Оставлено : 17 ноября 2016 г. 11:25:12(UTC)
Станислав Королёв

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.11.2014(UTC)
Сообщений: 219
Российская Федерация

Поблагодарили: 27 раз в 27 постах
Через ИВП УЦ 2.0 принимает только подписанные запросы в формате base64 без заголовков.
Offline Goren  
#4 Оставлено : 30 ноября 2016 г. 21:41:07(UTC)
Goren

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.02.2014(UTC)
Сообщений: 3
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Добрый вечер, столкнулся с той же проблемой как и в первом посте данной ветки, но только при получении пользователей.
При попытке получить список пользователей удовлетворяющих условию:
Код:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://cryptopro.ru/pki/registration/service/2010/03">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:GetUserRecordList>
        <ns:filterColumn>OID.2.5.4.3</ns:filterColumn>
        <ns:filterValue>Фамилия пользователя</ns:filterValue>
        <ns:filterOperator>1</ns:filterOperator>
        <ns:startNumber>1</ns:startNumber>
        <ns:count>5</ns:count>
     </ns:GetUserRecordList>
   </soapenv:Body>
</soapenv:Envelope>


Сервис возвращает ошибку:
Код:

Форматтер сгенерировал исключение при попытке десериализовать сообщение: Ошибка десериализации параметра http://cryptopro.ru/pki/registration/service/2010/03:filterValue. 
Сообщение InnerException было "Элемент filterValue из пространства имен http://cryptopro.ru/pki/registration/service/2010/03 не может иметь дочернего содержимого, которое десериализуется как объект. Используйте XmlNode[] для десериализации этого шаблона XML.".  Подробнее см. InnerException.


В руководстве программиста "ЖТЯИ.00078 01 90 05 ПАК КриптоПро УЦ 2.0. Руководство программиста" особой информации о правилах использования filterValue - нет, во всех примерах filterValue = "".

Подскажите, что должно представлять из себя filterValue ? И возможно ли найти пользователей по более сложному условию, с использованием нескольких полей ?

Отредактировано пользователем 30 ноября 2016 г. 21:42:01(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#5 Оставлено : 1 декабря 2016 г. 10:24:52(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Цитата:
Подскажите, что должно представлять из себя filterValue ?

Значение, по которому происходит фильтрация. Так как в методе этот параметр имеет тип object, то WCF для правильной десериализации нужно указывать тип (атрибут type из http://schemas.xmlsoap.org/soap/encoding).
Цитата:
И возможно ли найти пользователей по более сложному условию, с использованием нескольких полей ?

Нет.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.