| 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 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,733  Откуда: КРИПТО-ПРОПоблагодарили: 177 раз в 168 постах
 |  | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close