Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.10.2009(UTC) Сообщений: 49 Откуда: CHL
|
Здравствуйте
Есть приложение WEB на IIS. Существует ли возможность осуществления подписи информации определенного типа (строки, набора byte()), на стороне клиента с использованием его Сертификатов (установленных на стороне клиента), при работе с веб приложением? Если да то каким образом осуществляется поиск сертификата в Хранилищах клиента,и его последующее использование.
Спасибо.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.10.2009(UTC) Сообщений: 49 Откуда: CHL
|
Нашел вот такой пример Код:
function SignData()
{
// Необходимые константы
var CAPICOM_STORE_OPEN_READ_ONLY = 0;
var CAPICOM_CURRENT_USER_STORE = 2;
// проверяем, что поддерживаются ActiveXObject (Internet Explorer)
if (window.ActiveXObject) {
try {
// Подписываемые данные
var tbDataText = document.getElementById('<%= tbDataText.ClientID %>');
//Создаем необходимые объекты ActiveX
var CertStore = new ActiveXObject("CAPICOM.Store");
var Signer = new ActiveXObject("CAPICOM.Signer");
var SignedAuth = new ActiveXObject("CAPICOM.SignedData");
//Открываем хранилище сертификатов пользователя только для чтения
CertStore.Open(CAPICOM_CURRENT_USER_STORE, "MY", CAPICOM_STORE_OPEN_READ_ONLY);
//Выводим пользователю окно выбора сертификата
try {
var certificate = CertStore.Certificates.Select(
"Выберите сертификат для подписи документа."
, "Выберите один из сертификатов", false);
}
catch (e) {
// Пользователь не выбрал сертификат
return false;
}
//Подписываемые данные
SignedAuth.Content = "Дата подписи: " + (new Date()) + ", Данные: " + tbDataText.value;
//Выбранный сертификат
Signer.Certificate = certificate.Item(1);
//Сюда запишем данные (можно писать в hidden поле, тут сделано для примера)
var lblData = document.getElementById('<%= tbSignedData.ClientID %>');
// Подписываем
lblData.value = SignedAuth.Sign(Signer, false);
} catch (e) {
alert('Невозможно подписать данные. Убедитесь что браузером разрешно использование ActiveX. Добавьте сайт в Trusted Sites.');
return false;
}
return true;
}
else {
alert('Используйте Internet Explorer для просмотра данного сайта');
return false;
}
}
В принципе все работает в этом примере. Если есть еще какие то варианты, возможно без использования CAPICOM, буду признателен за пример или ссылочку.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.10.2009(UTC) Сообщений: 49 Откуда: CHL
|
А можно ли через CAPICOM осуществлять подписи несколькими ключами по схеме:
1. набор данных подписали - сохранили 2. подняли сохраненный набор данных - подписали еще одной подписью - сохранили 3. подняли набор данных - проверили - увидели что стоит 2е подписи
?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close