Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте, подскажите пожалуйста. После принятия неподписанного запроса на регистрацию пользователя отправил запрос на сертификат. Запрос принял в арме. Далее, хочу узнать его состояние. Код:
Сonst RA_CERTREQ_PROGID03 = "RegistrationCenter.CertRequest"
On Error Resume Next
Dim ReqID
ReqID = Request("ReqID")
Response.Clear
If Len(ReqID) <> 0 Then
Dim objReq: Set objReq = Server.CreateObject(RA_CERTREQ_PROGID03)
Dim ReqStatus: ReqStatus=objReq.GetRequestInfo (ReqID)
Но после вызова GetRequestInfo в ReqStatus пусто, а в Err.Number лежит -2147221001 (0x800401F7). Возможно, эта ошибка означает "клиентский сертификат не был предоставлен". (Поиск по форуму дал тему, где встречался такой же код ошибки). Но поскольку это запрос на первый сертификат, то мне еще нечего предоставить в качестве клиентского сертификата.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Но поскольку это запрос на первый сертификат, то мне еще нечего предоставить в качестве клиентского сертификата. Отправляли значит через маркер временного доступа? Вот его и предоставляйте для получения информации, по аналогии с веб-интерфейсом КриптоПро УЦ. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Передаю маркер временного доступа. Пробовал создавать объект "WebReg.Utils". Он успешно создается, выдает информацию в RegReqs. Но GetRequestInfo по-прежнему выдает ошибку. Вот мой код. Код:
Const RA_CERTREQ_PROGID03 = "RegistrationCenter.CertRequest"
On Error Resume Next
Dim ReqID
Dim TokenID, Password
Response.Clear
TokenID = Request("TokenID")
Password = Request("Password")
If (Len(TokenID) <> 0) and (Len(Password) <> 0 ) Then
Dim RegReqs
Dim CertReqs
Set oUtils = Server.CreateObject("WebReg.Utils")
' Здесь осуществится проверка маркера доступа.
oUtils.GetRequestsByToken RegReqs, CertReqs
ReqID = Request("ReqID")
If Len(ReqID) <> 0 Then
Dim objReq: Set objReq = Server.CreateObject(RA_CERTREQ_PROGID03)
Dim ReqStatus: ReqStatus=objReq.GetRequestInfo (ReqID)
If Err.Number = 0 Then
Response.Write "Status" & ReqStatus
else
Response.Write "BadService"
Response.Write Err.Number
End if
else
Response.Write "BadID"
End if
End if
Response.End
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:GetRequestInfo по-прежнему выдает ошибку GetRequestInfo (как и весь ИВП) работает только при двухсторонней аутентификации. Все информация о запросах на сертификат лежит в CertReqs. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Спасибо, да, получил информацию. Но там не все есть, что нужно. Дополнительно необходимо получить сам сертификат и его идентификатор. а после работы этой функции в поле PKCS лежит запрос на сертификат, судя по документации. и нет идентификатора сертификата.
Раньше сертификат и его новый идентификатор я получал через вызов метода GetCertificateInfo объекта RegistrationCenter.CertRequest. Но тут такое не проходит, все по той же причине, как вы сказали, необходимость двухсторонней аутентификации.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Там есть идентификатор запроса, а в RegInstallCert.asp есть пример, как по нему получить сертификат. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
Спасибо. Получить сертификат получилось. А как узнать его идентификатор, CertificateID? И еше хотел спросить, где можно почитать про описание функций объектов "WebReg.RegMan", "WebReg.CertMan", "WebReg.Utils", а то в руководстве программиста только про ИВП.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:А как узнать его идентификатор, CertificateID? Более простого способа чем перебором через GetCertificatesListMtoN наверное нет. Цитата:И еше хотел спросить, где можно почитать про описание функций объектов "WebReg.RegMan", "WebReg.CertMan", "WebReg.Utils", а то в руководстве программиста только про ИВП. Нигде, это недокументированные функции и не предназначены для встраивания в сторонние приложения. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.08.2010(UTC) Сообщений: 74 Откуда: Омск
Сказал(а) «Спасибо»: 2 раз
|
При использовании WebReg.CertMan мне говорят что объект не поддерживает этот метод. GetCertificatesListMtoN - это ИВП, значит для его использования нужен будет дополнительный запрос, после получения сертификата. Нужно будет передать полученный сертификат в качестве клиентского, чтобы прошла авторизация и так далее...
Есть ли в объектах "WebReg.RegMan", "WebReg.CertMan", "WebReg.Utils" какой-то метод, который бы позволил узнать CertificateID. Просто раз я получил PKCS, хотелось бы тут уже узнать CertificateID без дополнительных запросов от клиента.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:При использовании WebReg.CertMan мне говорят что объект не поддерживает этот метод. Немного ошибся, он находится в WebReg.Utils. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close