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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Dim  
#1 Оставлено : 16 декабря 2008 г. 14:54:04(UTC)
Dim

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

Группы: Участники
Зарегистрирован: 10.04.2008(UTC)
Сообщений: 157
Откуда: Новороссийск

Поблагодарили: 14 раз в 8 постах
Пытаюсь зарегистрировать пользователя на ЦР, для этого использую SOAP.
Ни как не получается, InvokeN выдает ошибку "В строке содержится недопустимый ключ атрибута имени X500, OID, значение или разделитель"
Вот код
Код:

HRESULT hr
hr = oSoap.CoCreateInstance (__uuidof(MSSOAPLib30::SoapClient30))
hr = oSoap->MSSoapInit(serviceURL, L"RA", L"RegistrationSoapPort", L"")
CComDispatchDriver oDisp
hr = oSoap->QueryInterface(&oDisp)
oSoap->ConnectorProperty[L"SSLClientCertificateName"] = adminCertName
oSoap->ConnectorProperty[L"UseSSL"] = CComVariant(true)
oSoap->ConnectorProperty[L"Timeout"] = CComVariant(long(60000))
DISPID dispID
hr = oDisp.GetIDOfName(L"CreateRequestByAdmin", &dispID)
std::string NameCertif="E=mail@mail.ru,C=RU,S=Регион,L=Город,O=Организация,CN=Пользователь"
CComVariant vType[4]
CComVariant vID(0)
vType[0]=NameCertif.c_str()
vType[1]=""
vType[2]=" "
vType[3]=" "
hr = oDisp.InvokeN(dispID, vType,4, &vID)


Подскажите где, что не так?
Offline Dim  
#2 Оставлено : 17 декабря 2008 г. 12:10:50(UTC)
Dim

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

Группы: Участники
Зарегистрирован: 10.04.2008(UTC)
Сообщений: 157
Откуда: Новороссийск

Поблагодарили: 14 раз в 8 постах
Господа разработчики КриптоПро УЦ, может Вы чего подскажите, ваше ведь детище.
Offline Kirill Sobolev  
#3 Оставлено : 17 декабря 2008 г. 18:04:08(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
из "Руководства программиста"
Цитата:
Строка представляет собой пары OID=значение
Техническую поддержку оказываем тут
Наша база знаний
Offline Dim  
#4 Оставлено : 17 декабря 2008 г. 18:31:45(UTC)
Dim

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

Группы: Участники
Зарегистрирован: 10.04.2008(UTC)
Сообщений: 157
Откуда: Новороссийск

Поблагодарили: 14 раз в 8 постах
Да как только я не пробовал эту строку.
Пробовал в таком виде:
Код:
	
CComVariant vType[4];
CComVariant vCert(0);
vType[0]=L"2.5.4.3=Иванов";
vType[1]="";
vType[2]=" ";
vType[3]=" ";
hr = oDisp.InvokeN(dispID, vType,4, &vCert);

Пробовал ее переводить в UNICODE, UTF-8.
Результат один.
Пробовал в Visual FoxPro, здесь все работает. Отсюда сделал вывод, что что-то с передачей строки.
Подскажите если знаете, как эту строку передовать.

Отредактировано пользователем 17 декабря 2008 г. 18:35:23(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#5 Оставлено : 17 декабря 2008 г. 19:58:31(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
MSDN
Цитата:
Arguments are stored in pDispParams->rgvarg in reverse order, so the first argument is the one with the highest index in the array.
Техническую поддержку оказываем тут
Наша база знаний
Offline Dim  
#6 Оставлено : 17 декабря 2008 г. 20:17:37(UTC)
Dim

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

Группы: Участники
Зарегистрирован: 10.04.2008(UTC)
Сообщений: 157
Откуда: Новороссийск

Поблагодарили: 14 раз в 8 постах
Спасибо! Помогло.
Крайне плохо знаком с работой в С++ с OLE, вот и искал не то, что надо.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.