Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает ActiveX в IE 9 
:(
    Опции темы
Neismit
Дата 12.8.2011, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Доброго времени суток.

Пытаюсь сделать подпись данных сертификатом на клиенте как показано в этой статье: 
http://outcoldman.ru/ru/blog/show/1

Подпись осуществляется вот этой JavaScrip функцией:

Код

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 
            alert('До сюда ещё работает');
            var CertStore = new ActiveXObject("CAPICOM.Store");
            var Signer = new ActiveXObject("CAPICOM.Signer");
            var SignedAuth = new ActiveXObject("CAPICOM.SignedData");
            alert('А здесь уже нет');
            //Открываем хранилище сертификатов пользователя только для чтения 
            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;
    }
}


Собственно проблема в том, что когда эта функция выполняется в IE 9 он при попытке создания ActiveX объектов выдаёт: 
"Невозможно подписать данные. Убедитесь что в браузером разрешено использование ActiveX. Добавьте сайт в Trusted Sites"

Асп.Нет приложение само развёрнуто в IIS 7.5 в сайте по уполчанию, соответственно localhost я добавил в Доверенный узлы и уже и все настройки у всех зон поменял что бы ActiveX выполнялся и всё равно получаю такое сообщение...

Кто может что подсказать? Может быть я какой то важный момент упустил? Или с администрированием IE непорядок?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.