Статус: Активный участник
Группы: Участники
Зарегистрирован: 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)
Подскажите где, что не так?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.04.2008(UTC) Сообщений: 157 Откуда: Новороссийск
Поблагодарили: 14 раз в 8 постах
|
Господа разработчики КриптоПро УЦ, может Вы чего подскажите, ваше ведь детище.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
из "Руководства программиста" Цитата:Строка представляет собой пары OID=значение |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.04.2008(UTC) Сообщений: 157 Откуда: Новороссийск
Поблагодарили: 14 раз в 8 постах
|
Спасибо! Помогло. Крайне плохо знаком с работой в С++ с OLE, вот и искал не то, что надо.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close