01.04.2004 13:00:00Не срабатывает ("виснет") метод Sign на стороне сервера Ответов: 3
Дмитрий
Здравствуйте!

Не получается реализовать подпись данных на стороне сервера (IIS, C# под .Net).

Успешно открывается хранилище сертификатов:
objCertStore.Open(CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE, "my", CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_ONLY);

В нем успешно находится и выбирается нужный сертификат objCertificate и строится объект objSigner, которому устанавливается objSigner.Certificate = objCertificate. (Сертификат и ключи хранятся в реестре.)

Затем создается объект objSignedData, устанавливается objSignedData.Content = "Текст" и вызывается objSignedData.Sign(objSigner, true, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64). При этом сервер "подвисает", не выкидывая никаких ошибок, и висит до таймаута. Есть подозрение, что на сервере открывается какое-то окно и сервер ждет реакции. Если так, то как этого избежать? Или проблема в чем-то другом?
 
Ответы:
01.04.2004 16:50:37Василий
Пара вопросов.
1. Установлен ли прроль на контейнер ключа, соответствующий этому сертификату?
2. для установки соединения клиента с сервером используется http или https?
3. лицензии на CSP и на TLS-сервер действительны до какого момента?
01.04.2004 17:06:45Дмитрий
1. Нет, не установлен.
2. В данный момент - http.
3. Действует 30-дневная trial-лицензия(срок еще не истек). Планируем купить безлимитную лицензию.
02.04.2004 10:21:33Василий
Если до конца лицензии осталось меньше 30 дней, то один раз в день, при первом использовании функций CSP или TLS выводится окошко с сообщением об этом факте.
Стало быть, ожидается нажатие кнопочки Ок. Поможет либо разрешение приложению взаимодействовать с десктопом (и ручное нажатие кнопочки), либо постоянная лицензия.