Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
GetRequestsByToken и авторизация по маркеру временного доступа
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте, возникла такая проблема. У нас есть приложение, которое взаимодействует с УЦ посредством собственных VBS скриптов и позволяет присылать запросы на сертификат и самоподписанные запросы на регистрацию нового пользователя. Решили обновить УЦ до версии 1.5. Поставили пока на тестовой машине. И есть желание, чтобы при очередном обновлении сертификатов запросы через нашу программу приходили уже на новый УЦ. Поскольку на новом УЦ еще нет пользователей, то сначала приходит неподписанный запрос на регистрацию пользователя и ждет одобрения администратора. Но вот дальше возникла проблема, имея маркер временного доступа и пароль не удается узнать состояние запроса на регистрацию. StateID и AdminComments возвращаются пустыми. Каким образом осуществляется авторизация по маркеру временного доступа? Где именно используется TokenID и Password? посмотрел в RegTemporaryUser.asp там код аналогичный (правильнее сказать, у нас написано по аналогии :) конечно же). Код:
im TokenID, Password
Response.Clear
TokenID = Request("TokenID")
Password = Request("Password")
If (Len(TokenID) <> 0) and (Len(Password) <>0 ) Then
Set oUtils = Server.CreateObject("WebReg.Utils")
' Здесь осуществится проверка маркера доступа.
oUtils.GetRequestsByToken RegReqs, CertReqs
If Err.Number <> 0 Then
Response.Write "BadService"
Response.Write Err.Description
End If
If RegReqs <> vbNullString Then
Set adoRS = XML2Recordset(RegReqs)
If Not (adoRS.BOF And adoRS.EOF) Then
Response.Write adoRS.Fields("StateID")
Response.Write "Comment:"
Response.Write adoRS.Fields("AdminComments")
End If
End If
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Если в RegReqs пусто, то запрос одобрен и пользователь создан. TokenID и Password используются в объектах сервера ЦР, конкретно в Вашем примере в WebReg.Utils.
|
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Просто раньше, при одобрении запроса StateID возвращал 4, а сейчас пусто. содержимое RegReqs выглядит так. Оно не пусто, но видно, что запрос одобрен. Код:
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly'>
<s:AttributeType name='RegRequestID' rs:number='1' rs:writeunknown='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
rs:fixedlength='true' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='StateID' rs:number='2' rs:writeunknown='true'>
<s:datatype dt:type='ui1' dt:maxLength='1' rs:precision='3'
rs:fixedlength='true' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='EMail' rs:number='3' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='128'/>
</s:AttributeType>
<s:AttributeType name='Password' rs:number='4' rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='128'
rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='UserInfo' rs:number='5' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='1024'/>
</s:AttributeType>
<s:AttributeType name='RequestDate' rs:number='6' rs:writeunknown='true'>
<s:datatype dt:type='dateTime' rs:dbtype='timestamp'
dt:maxLength='16' rs:scale='3' rs:precision='23' rs:fixedlength='true'
rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='ApproveDate' rs:number='7' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='dateTime' rs:dbtype='timestamp'
dt:maxLength='16' rs:scale='3' rs:precision='23' rs:fixedlength='true'/>
</s:AttributeType>
<s:AttributeType name='AdminComments' rs:number='8'
rs:nullable='true' rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='1024'/>
</s:AttributeType>
<s:AttributeType name='CreatedByAdmin' rs:number='9'
rs:writeunknown='true'>
<s:datatype dt:type='boolean' dt:maxLength='2' rs:fixedlength='true'
rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='UserID' rs:number='10' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
rs:fixedlength='true'/>
</s:AttributeType>
<s:AttributeType name='Subject' rs:number='11' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='2147483647'
rs:long='true'/>
</s:AttributeType>
<s:AttributeType name='PKCS' rs:number='12' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='2147483647'
rs:long='true'/>
</s:AttributeType>
<s:AttributeType name='KeyPhrase' rs:number='13' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='255'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row RegRequestID='17' StateID='4' EMail='0' Password=''
RequestDate='2012-11-12T15:16:16.630000000' ApproveDate='2012-11-12T15:17:30.227000000'
AdminComments='одобрен' CreatedByAdmin='False' UserID='9'
Subject='1.2.643.100.3=12345678901, 1.2.643.100.1=1234567890123, 1.2.643.3.141.1.2=9999, 1.2.643.3.141.1.1=9999123456, 1.2.643.3.131.1.1=005528002703, 1.2.840.113549.1.9.1=0, 2.5.4.6=RU, 2.5.4.8=55 Омская область, 2.5.4.7=Омск, 2.5.4.10=Тестовая организация, 2.5.4.11=0, 2.5.4.3=Кухтиков Илья Александрович, 2.5.4.12=Директор'/>
</rs:data>
</xml>
Отредактировано пользователем 13 ноября 2012 г. 17:46:42(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Если в RegReqs не пусто, то почему в adoRS.Fields("StateID") и adoRS.Fields("StateID").Value пусто ? подскажите, как мне получить статус запроса?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
В приведенном Вами XML Код:<rs:data>
<z:row RegRequestID='17' StateID='4' EMail='0' Password=''
RequestDate='2012-11-12T15:16:16.630000000' ApproveDate='2012-11-12T15:17:30.227000000'
AdminComments='одобрен' CreatedByAdmin='False' UserID='9'
Subject='1.2.643.100.3=12345678901, 1.2.643.100.1=1234567890123, 1.2.643.3.141.1.2=9999, 1.2.643.3.141.1.1=9999123456, 1.2.643.3.131.1.1=005528002703, 1.2.840.113549.1.9.1=0, 2.5.4.6=RU, 2.5.4.8=55 Омская область, 2.5.4.7=Омск, 2.5.4.10=Тестовая организация, 2.5.4.11=0, 2.5.4.3=Кухтиков Илья Александрович, 2.5.4.12=Директор'/>
</rs:data>
StateID не пусто, а равно 4. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Так в том-то и дело. Вопрос в том, отчего перестала работать строка adoRS.Fields("StateID").Value ? она ведь раньше возвращала 4.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Другие поля возвращаются правильно? |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Нет. Ни одно поле не возращается.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Возможно XML2Recordset не отрабатывает? |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Спасибо, разобрался. Все дело в моей невнимательности. Я честно говоря думал что XML2RecordSet какая-то стандратная функция в VBScript которая парсит XML. Поэтому и удивлялся отчего она у меня работать никак не хочет. Нашел, что эта функция описана в UtilsDef.asp, после чего подключил соответствующий файл и все заработало.
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
GetRequestsByToken и авторизация по маркеру временного доступа
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close