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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline CAUse  
#1 Оставлено : 30 марта 2012 г. 13:30:45(UTC)
CAUse

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline CAUse  
#2 Оставлено : 30 марта 2012 г. 14:16:40(UTC)
CAUse

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 4 раз в 1 постах
UserID = 19 - ид зарегиного пользователя
SendIDToUser = false
IncludePwd = false
TokenID = 19 - понимаю его можно задать явно, если он уже есть раз параметр in\out
Password = 19 - но пароль не меняется на новый
Offline Kirill Sobolev  
#3 Оставлено : 30 марта 2012 г. 15:18:57(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Приведите код вызова.
Техническую поддержку оказываем тут
Наша база знаний
Offline CAUse  
#4 Оставлено : 30 марта 2012 г. 17:49:36(UTC)
CAUse

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

Группы: Участники
Зарегистрирован: 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 правильно нужно поступить (передать) Whistle

Одно не понятно, почему если вызов идет с ошибкой токенид в бд создается все-равно

Можно пример корректного вызова?
Если не на Delphi, то хотя бы на VB, или с++ (хотя на нем, скорее всего, все заработает сразу как нужно).

Отредактировано пользователем 30 марта 2012 г. 17:55:45(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#5 Оставлено : 30 марта 2012 г. 18:49:08(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

Если все отрабатывает, то, видимо, проблема в возврате результатов.
Пароль будет сгенерирован в любом случае.
Техническую поддержку оказываем тут
Наша база знаний
Offline CAUse  
#6 Оставлено : 30 марта 2012 г. 18:58:47(UTC)
CAUse

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline CAUse  
#7 Оставлено : 1 апреля 2012 г. 21:04:23(UTC)
CAUse

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 4 раз в 1 постах
Дело бы в возрате. Спасибо. Angel
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.