Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.02.2012(UTC) Сообщений: 45
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 4 раз в 1 постах
|
Добрый день. Просьба помочь разобраться в ошибке при вызове функции создания временого маркера доступа (токена) для пользователя. При вызове функции HRESULT ObjAdmin. CreateTokenForUser ( LONG UserID, BOOL SendIDToUser, BOOL IncludePwd, LONG* TokenID, BSTR* Password); получаю ошибку: Client:Incorrect number of parameters supplied for SOAP request HRESULT=0x80070057: The parameter is incorrect. - Client:Unspecified client error. HRESULT=0x80070057: The parameter is incorrect. Клиент - MS SOAP. При этом в БД таблице токенов на Registration Authority появляется новая строка. Возможно, поможет пример использования данной функции. Отредактировано пользователем 30 марта 2012 г. 13:38:03(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.02.2012(UTC) Сообщений: 45
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 4 раз в 1 постах
|
UserID = 19 - ид зарегиного пользователя SendIDToUser = false IncludePwd = false TokenID = 19 - понимаю его можно задать явно, если он уже есть раз параметр in\out Password = 19 - но пароль не меняется на новый
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
|
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.02.2012(UTC) Сообщений: 45
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 4 раз в 1 постах
|
Что-то с вызовом не то. С другими методами проблем нет. КОД: Код:var
SOAPMS: OleVariant;
WSDL, WSML, Port, Service : String;
/////////****************************
UserID: LongInt;
SendIDToUser: Boolean;
IncludePwd: Boolean;
TokenID: LongInt;
Password: WideString;
////////////////////////****************
begin
SOAPMS := CreateOleObject('MSSOAP.SoapClient30');
.......
SOAPMS.mssoapinit(WSDL, Service, AdminSoapPort, WSML);
SOAPMS.ConnectorProperty('UseSSL') := true;
.......
UserID := 19;
SendIDToUser := False;
IncludePwd := False;
TokenID := 0; //хотим создать новый токенид и пароль для зарег пользователя
Password := ''; // сгенирирует пароль самомстоятельно при пустом параметре?
//
SOAPMS.CreateTokenForUser(UserID,SendIDToUser,IncludePwd,&TokenID,&Password);
SLL поднимается, авторизация по клиент сертификату идет. остальные методы вызываются без ошибок. Как-то тут с параметрами in/out правильно нужно поступить (передать) Одно не понятно, почему если вызов идет с ошибкой токенид в бд создается все-равно Можно пример корректного вызова? Если не на Delphi, то хотя бы на VB, или с++ (хотя на нем, скорее всего, все заработает сразу как нужно). Отредактировано пользователем 30 марта 2012 г. 17:55:45(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
На VB6 вызов похож Цитата: Set SoapPort = New MSSOAPLib30.SoapClient30 SoapPort.MSSoapInit WSDL, ServiceName, PortName SoapPort.ConnectorProperty("Timeout") = ConnectorTimeout SoapPort.ConnectorProperty("UseSSL") = True SoapPort.ConnectorProperty("SSLClientCertificateName") = ConnectorSSLCertificateName SoapPort.CreateTokenForUser UserID, SendMsgToUser, IncludePwd, TokenID, Pwd
Если все отрабатывает, то, видимо, проблема в возврате результатов. Пароль будет сгенерирован в любом случае. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.02.2012(UTC) Сообщений: 45
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 4 раз в 1 постах
|
Kirill Sobolev написал:На VB6 вызов похож Цитата: Set SoapPort = New MSSOAPLib30.SoapClient30 SoapPort.MSSoapInit WSDL, ServiceName, PortName SoapPort.ConnectorProperty("Timeout") = ConnectorTimeout SoapPort.ConnectorProperty("UseSSL") = True SoapPort.ConnectorProperty("SSLClientCertificateName") = ConnectorSSLCertificateName SoapPort.CreateTokenForUser UserID, SendMsgToUser, IncludePwd, TokenID, Pwd
Если все отрабатывает, то, видимо, проблема в возврате результатов. Пароль будет сгенерирован в любом случае. Да, но по паролю зайти нельзя, что интересно. Говорит неверный пароль. А как на VB смотреться передача параметров TokenID, Pwd (out) в переменную, после вызова процедуры? Или в MessageBox.Show показать их, например? Иными словами, когда генерируем маркер из АРМ Администратора, то там появляется логин и пароль в 2-х едитах. Пароль генерируется автоматом с использованием этой же функции, при задании пустого атрбиута с паролем? И токенид также (счетчик)? Отредактировано пользователем 30 марта 2012 г. 19:04:27(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.02.2012(UTC) Сообщений: 45
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 4 раз в 1 постах
|
Дело бы в возрате. Спасибо.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close