Прошу привести пример кода авторизации по логину/паролю из 1с . · Issue #123 · diadoc/diadocsdk-1c-docs · GitHub

Авторизация по сертификату js · issue #218 · diadoc/diadocapi-docs

Доброе время суток, уважаемые коллеги разработчики,
Не достиг я успеха в авторизации через ASP.NET C#
Код на C# при публикации в IIS на клиенте не отработал с правадли того кто открыл сайт

Сейчас пытаюсь авторизоваться на клиенте и отправить на сервер токен, сигнатуру и отпечаток для дальнейших подписаний документов
Попытки подключиться к Вашей Com на языке JS у меня безрезультатны. Поэтому попробовал воспользоваться Крипто ПРО плугином и тут всё стало проще, но возникли вопросы по x509:

Вопрос:
Как мне получить

<Двоичное DER-представление X.509-сертификата пользователя>

из статьи:
Как авторизоваться в системе

Используя следующую функцию:

function FillCertList_NPAPI() {
   let certList = {};

   return new Promise(function(resolve, reject){
       cadesplugin.async_spawn(function *(args) {
           try {
                    let oStore = yield cadesplugin.CreateObjectAsync("CAPICOM.Store");
                    yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
                    let CertificatesObj = yield oStore.Certificates;
                    let Count = yield CertificatesObj.Count;

                    if (Count == 0) {
                        certList.globalCountCertificate = 0;
                        reject({certListNotFound: true});
                        return;
                    }

                    if (!Array.isArray(certList.globalOptionList)) {
                        certList.globalOptionList = [];
                    }

                    let text;
                    let dateObj = new Date();
                    let count = 0;

                    for (let i = 1; i <= Count; i  ) {

                        
                           let cert = yield CertificatesObj.Item(i);

                           let ValidToDate = new Date((yield cert.ValidToDate));
                           let ValidFromDate = new Date((yield cert.ValidFromDate));
                           let HasPrivateKey = yield cert.HasPrivateKey();
                           let Validator = yield cert.IsValid();
                           let IsValid = yield Validator.Result;

                           if( dateObj < new Date(ValidToDate) && IsValid && HasPrivateKey) {
                            let issuedBy = yield cert.GetInfo(1);
                            issuedBy = issuedBy || "";
                               
                            var Adjust = new CertificateAdjuster();
                            text = new CertificateAdjuster().GetCertInfoString(yield cert.SubjectName, ValidFromDate, issuedBy);

                            var pubKey = yield cert.PublicKey();
                            var algo = yield pubKey.Algorithm;
                            var fAlgoName = yield algo.FriendlyName;

                            var oPrivateKey = yield cert.PrivateKey;
                            var sProviderName = yield oPrivateKey.ProviderName;
                            let subjectName = yield Adjust.GetCertName(yield cert.SubjectName);

                               
                            var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
                            yield oSigner.propset_Certificate(cert);


                            certList.globalOptionList.push({
                                'value': text.replace(/^cn=([^;] );. /i, '$1'),
                                'text' : text.replace("CN=", ""),
                                'subject' : subjectName,
                                'issuer' : Adjust.GetIssuer(yield cert.IssuerName),
                                'from' : Adjust.GetCertDate(yield cert.ValidFromDate),
                                'till' : Adjust.GetCertDate(yield cert.ValidToDate),
                                'algorithm' : fAlgoName,
                                'provname' : sProviderName,
                                'signature' : signatures
                            });
                            count  ;
                           }
                        }
                        certList.globalCountCertificate = count;
                        resolve(certList.globalOptionList, certList);
               } 
               catch (err) {
                   reject(err);
                    //    throw errormes;
                }
            });
    });
}

В ней добрался до описания

Непонятно что должен отправить из полученного Вам.
Код взят и статьи: КриптоПро ЭЦП Browser plug-in. Создание и проверка подписи
А также из проекта: splincode/cryptopro-browser-plugin
Понимаю что вот прос звучит не по адресу, но огромное спасибо если окажите помощь и поможете разобраться.

Похожее:  МТС - связь и экосистема цифровых сервисов - Частным клиентам | Официальный сайт МТС - Оренбург и Оренбургская область

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *