Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2009(UTC) Сообщений: 121
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 3 раз в 3 постах
|
давно уже написали бы сами себе клиента если на c# писать, то необходимо будет только добавить _soapGnivcClass.ClientCredentials.ClientCertificate.SetCertificate( subjectName, StoreLocation.CurrentUser, StoreName.My ); для двухфакторной аутентификации ps а даже не пожалею и второй строки, для лучшего впитывания private IRUCAutoRegServiceInterfaceClient _iruc; _iruc = new RUCAutoRegServiceInterfaceClient( "IRUCAutoRegServiceInterfacePort" ); _iruc.ClientCredentials.ClientCertificate.SetCertificate( subjectName, StoreLocation.CurrentUser, StoreName.My) Отредактировано пользователем 21 января 2011 г. 19:41:56(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
cybermerlin написал:давно уже написали бы сами себе клиента cybermerlin, спасибо за совет ;) Я как раз так и сделал :) Просто ещё не успел отписаться. Кстати, сначала, я написал тестовое приложение на C#. Оно заработало. Но чтобы не переписывать всё, что у меня уже сделано, просто написал узконаправленного SOAP-клиента. Только вот сегодня закончил. Первые тесты показали, что вроде бы работает :) А в MS SOAP Toolkit видать кривой WSDLReader, так как я при тестах своего клиента, получал такие же ошибки. А возникали они у меня, когда не правильно составлял запрос. В частности, добавил пространство имён к имени тега, а оказалось, что не нужно было. В общем, если что - я напишу :) Всем спасибо!
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.07.2010(UTC) Сообщений: 13 Откуда: Chelyabinsk
Поблагодарили: 1 раз в 1 постах
|
artsb, когда вы писали клиента на С# не сталкивались с проблемой работы с отечественными сертификатами? Наткнулся тут на ошибку при вызове soap метода: "System.Net.WebException: Базовое соединение закрыто: Непредвиденная ошибка при приеме. ---> System.NotSupportedException: Алгоритм ключа сертификата не поддерживается", есть мнение что дело в сертификате, алгоритм подписи у него ГОСТ Р 34.10/34.11-2001, а .Net как я понял нормально работает для RSA сертификатов. А какая подпись в вашем клиентском сертификате?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,408  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 722 раз в 626 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Zokeez написал:artsb, когда вы писали клиента на С# не сталкивались с проблемой работы с отечественными сертификатами? Наткнулся тут на ошибку при вызове soap метода: "System.Net.WebException: Базовое соединение закрыто: Непредвиденная ошибка при приеме. ---> System.NotSupportedException: Алгоритм ключа сертификата не поддерживается", есть мнение что дело в сертификате, алгоритм подписи у него ГОСТ Р 34.10/34.11-2001, а .Net как я понял нормально работает для RSA сертификатов. А какая подпись в вашем клиентском сертификате? У меня тоже "отечественный" сертификат. Я получил точно такую же ошибку в первый раз. Судя по всему, не удаётся получить закрытый ключ. Чтобы её обойти, нужно создать объект хранилища и в нём через поиск найти нужный сертификат. В этом случае, всё проходит как по маслу :) Если не разберётесь, я завтра на работе выдеру кусочек из исходников.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.07.2010(UTC) Сообщений: 13 Откуда: Chelyabinsk
Поблагодарили: 1 раз в 1 постах
|
artsb, спасибо, действительно работает :).
Про Sharpei тоже читал, но надеялся обойтись без дополнительного ПО.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Вот код: Код:X509Certificate2 cClientCertificate;
X509Store store = new X509Store("My", StoreLocation.CurrentUser);
X509Certificate2Collection certCollection;
store.Open(OpenFlags.OpenExistingOnly);
// sCerificateName - имя сертификата. Значение параметра CN сертификата
certCollection = store.Certificates.Find(X509FindType.FindBySubjectName, sCerificateName, false);
cClientCertificate = certCollection[0];
Извиняйте за кривость. С C# работал впервые. Но тут главное идея :)
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Zokeez написал:artsb, спасибо, действительно работает :).
Про Sharpei тоже читал, но надеялся обойтись без дополнительного ПО. О. Вы уже ответили :)
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.07.2010(UTC) Сообщений: 13 Откуда: Chelyabinsk
Поблагодарили: 1 раз в 1 постах
|
Ну примерно так и сделал, сам впервые на С# пишу
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close