Статус: Активный участник
Группы: Участники
Зарегистрирован: 11.01.2017(UTC) Сообщений: 120 Сказал(а) «Спасибо»: 13 раз Поблагодарили: 5 раз в 5 постах
|
Здравствуйте! Имеется стандартный скрипт для УЦ, в котором есть код для выбора сертификатов из хранилища: Код:var Cert = new ActiveXObject("CAPICOM.Signer")
var StoreName = "MY"
var Store = new ActiveXObject("CAPICOM.Store")
StoreLocation = CAPICOM_CURRENT_USER_STORE
Store.Open(StoreLocation, StoreName)
var Certificates = Store.Certificates
if (Certificates.Count > 0) {
Certificates = Certificates.Find(CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY, CAPICOM_PROPID_KEY_PROV_INFO)
}
if (Certificates.Count > 0) {
Certificates = Certificates.Find(CAPICOM_CERTIFICATE_FIND_TIME_VALID)
}
if (Certificates.Count > 0) {
Certificates = Certificates.Find(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, "Имя УЦ")
}
Подскажите, пожалуйста, как модифицировать код, чтобы в Certificates оказались сертификаты, выданные несколькими УЦ? То есть сделать Find с параметром CAPICOM_CERTIFICATE_FIND_ISSUER_NAME и несколькими значениями для него.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Здравствуйте. Что мешает в 14 строке инициализировать коллекцию сертификатов для разных переменных? Код:
CertificatesCA1 = Certificates.Find(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, "Имя УЦ1")
CertificatesCA2 = Certificates.Find(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, "Имя УЦ2")
CertificatesCA3 = Certificates.Find(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, "Имя УЦ3")
CertificatesCA4 = Certificates.Find(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, "Имя УЦ4")
? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 11.01.2017(UTC) Сообщений: 120 Сказал(а) «Спасибо»: 13 раз Поблагодарили: 5 раз в 5 постах
|
Подскажите, пожалуйста, как потом объединить полученные коллекции в одну CertificatesCA-All? Чтобы можно было сделать Certificates = CertificatesCA-All.Select("CSignData.vbs", "Please select a certificate")
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: bstas Здравствуйте! Имеется стандартный скрипт для УЦ, в котором есть код для выбора сертификатов из хранилища: Код:Вырезка, хвостик кода:
if (Certificates.Count > 0) {
Certificates = Certificates.Find(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, "Имя УЦ")
}
Подскажите, пожалуйста, как модифицировать код, чтобы в Certificates оказались сертификаты, выданные несколькими УЦ? То есть сделать Find с параметром CAPICOM_CERTIFICATE_FIND_ISSUER_NAME и несколькими значениями для него. А зачем? Если хвостик кода убрать, так в Certificates и так будет то, что вы хотите. А если там будет чтой-то лишнее, то ForEach и удалить лишнее.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: Boris@Serezhkin.com Автор: bstas Здравствуйте! Имеется стандартный скрипт для УЦ, в котором есть код для выбора сертификатов из хранилища: Код:Вырезка, хвостик кода:
if (Certificates.Count > 0) {
Certificates = Certificates.Find(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, "Имя УЦ")
}
Подскажите, пожалуйста, как модифицировать код, чтобы в Certificates оказались сертификаты, выданные несколькими УЦ? То есть сделать Find с параметром CAPICOM_CERTIFICATE_FIND_ISSUER_NAME и несколькими значениями для него. А зачем? Если хвостик кода убрать, так в Certificates и так будет то, что вы хотите. А если там будет чтой-то лишнее, то ForEach и удалить лишнее. + лучше список УЦ "не зашивать в код", а брать из внешнего источника данных. Хотя разработчикам виднее... как сделать своё ПО. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 11.01.2017(UTC) Сообщений: 120 Сказал(а) «Спасибо»: 13 раз Поблагодарили: 5 раз в 5 постах
|
Автор: Boris@Serezhkin.com А зачем? Если хвостик кода убрать, так в Certificates и так будет то, что вы хотите. А если там будет чтой-то лишнее, то ForEach и удалить лишнее. Написал так: Код:var Cert = new ActiveXObject("CAPICOM.Signer")
var StoreName = "MY"
var Store = new ActiveXObject("CAPICOM.Store")
StoreLocation = CAPICOM_CURRENT_USER_STORE
Store.Open(StoreLocation, StoreName)
var Certificates = Store.Certificates
function FindCert(cert, index, array) {
console.log(cert.IssuerName);
}
Certificates.forEach(FindCert)
Выдает ошибку "Объект не поддерживает свойство или метод "forEach"" Андрей Писарев написал:+ лучше список УЦ "не зашивать в код", а брать из внешнего источника данных.
Хотя разработчикам виднее... как сделать своё ПО. Разработчикам это громко сказано, скорее администраторам УЦ, желающим сделать свою жизнь немного проще и автоматизировать некоторые процессы. Отредактировано пользователем 27 февраля 2018 г. 9:34:57(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
forEach - имелся ввиду - цикл... программный цикл, а не метод у Certificates
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 11.01.2017(UTC) Сообщений: 120 Сказал(а) «Спасибо»: 13 раз Поблагодарили: 5 раз в 5 постах
|
В JavaScript forEach является методом а не циклом. Но я понял ход Ваших мыслей.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: bstas В JavaScript forEach является методом а не циклом. Но я понял ход Ваших мыслей. Там написано не определение forEach, а что требуется сделать и уж тем более не у Certificates |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close