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