Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline codegen  
#1 Оставлено : 2 сентября 2010 г. 15:05:46(UTC)
codegen

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.08.2008(UTC)
Сообщений: 204
Мужчина
Российская Федерация

Сказал «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Добрый день. Возникла необходимость получать списки сертификатов по заданным фильтрам с Центра Регистрации.
Подскажите пожалуйста как можно подключиться к https://localhost/RA/RA.wsdl используя C# ?
Пытались SoapClient30 raconn = new SoapClient30Class();
Но он ругается:
Код:

Сбой при получении производства объектов класса COM для компонента с CLSID {7F017F97-9257-11D5-87EA-00B0D0BE6479} в результате следующей ошибки: 80040154.


ОС Windows 7 x64, Microsoft SOAP Toolkit 3.0.exe установлена.

Отредактировано пользователем 2 сентября 2010 г. 15:20:37(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#2 Оставлено : 2 сентября 2010 г. 16:15:33(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Техническую поддержку оказываем тут
Наша база знаний
Offline codegen  
#3 Оставлено : 2 сентября 2010 г. 16:20:21(UTC)
codegen

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.08.2008(UTC)
Сообщений: 204
Мужчина
Российская Федерация

Сказал «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Kirill Sobolev написал:
http://forums.asp.net/t/1119052.aspx


Спасибо. С этим я уже разобрался. Застрял на:
Код:

Вызываем метод GetCACertificate. При этом SOAPClient30 не содержит
' кода реализации данного метода. Реализация формируется динамически по описанию,
' полученному из WSDL описания
GetCACertificate = oSoap.GetCACertificate(0)

Незнаю как в VB, а C# ругается на то, что он незнает что такое GetCACertificate.


Вот кусок кода:
Код:

SoapClient30 raconn = new SoapClient30Class();
            raconn.MSSoapInit(RA_URL, "RA", "CertViewSoapPort", "");
            raconn.set_ConnectorProperty("Timeout", "60000");
            raconn.set_ConnectorProperty("SSLClientCertificateName", Admin_Cert);
            string cacert = raconn.GetCACertificate();
Offline Kirill Sobolev  
#4 Оставлено : 2 сентября 2010 г. 16:38:30(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Нужно вызывать через InvokeMember.
Техническую поддержку оказываем тут
Наша база знаний
Offline codegen  
#5 Оставлено : 2 сентября 2010 г. 17:38:50(UTC)
codegen

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.08.2008(UTC)
Сообщений: 204
Мужчина
Российская Федерация

Сказал «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Kirill Sobolev написал:
Нужно вызывать через InvokeMember.


Как то так?
Код:
Object res = raconn.GetType().InvokeMember("GetCACertificate", BindingFlags.InvokeMethod, null, raconn, null);


У меня почему то выдает исключение:
Код:
Client:Incorrect number of parameters supplied for SOAP request

Offline Kirill Sobolev  
#6 Оставлено : 2 сентября 2010 г. 18:17:04(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Потому что у GetCACertificate есть 1 входной параметр.
Техническую поддержку оказываем тут
Наша база знаний
Offline codegen  
#7 Оставлено : 2 сентября 2010 г. 19:44:18(UTC)
codegen

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.08.2008(UTC)
Сообщений: 204
Мужчина
Российская Федерация

Сказал «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Kirill Sobolev написал:
Потому что у GetCACertificate есть 1 входной параметр.


Спасибо. Все получилось. Вот кусок кода, может кому пригодится.
Код:

            // URL адрес с wsdl файлом
            string RA_URL = "https://localhost/RA/RA.wsdl";
            // Сертификат оператора УЦ
            string Admin_Cert = "CURRENT_USER\\My\\HornsOper";
            SoapClient30 raconn = new SoapClient30Class();
            raconn.MSSoapInit(RA_URL, "RA", "CertViewSoapPort", "");
            raconn.set_ConnectorProperty("Timeout", "60000");
            raconn.set_ConnectorProperty("SSLClientCertificateName", Admin_Cert);
            raconn.set_ConnectorProperty("UseSSL",true);
            // Первым параметром InvokeMember указываем требуемый метод согласно "Руководству программиста", последний параметр - это требуемые параметры метода.
            Object res = raconn.GetType().InvokeMember("GetCACertificate", BindingFlags.InvokeMethod, null, raconn, new object[] { "0" });   
            string CA_Cert = res.ToString(); // Строка, содержащая сертификат УЦ

Отредактировано пользователем 2 сентября 2010 г. 19:45:57(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.