Статус: Новичок
Группы: Участники
Зарегистрирован: 19.07.2011(UTC) Сообщений: 8 Откуда: Балашиха
|
Эта функция отлично работает в виндоуз приложении, но при исползовании в ASP.NET вылетает ошибка -
Не удается найти сертификат и закрытый ключ для расшифровки.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
Сведения об исключении: System.Security.Cryptography.CryptographicException: Не удается найти сертификат и закрытый ключ для расшифровки.
Ошибка источника:
Строка 302: Console.Write("Вычисляем подпись сообщения для субъекта " + Строка 303: "{0} ... ", signerCert.SubjectName.Name); Строка 304: signedCms.ComputeSignature(cmsSigner); Строка 305: Console.WriteLine("Успешно."); Строка 306:
Исходный файл: M:\Projects\My\RosreestrService\RosreestrServicelLibrary\Detached\DetachedSignature.cs Строка: 304
Трассировка стека:
[CryptographicException: Не удается найти сертификат и закрытый ключ для расшифровки. ] System.Security.Cryptography.Pkcs.PkcsUtils.CreateSignerEncodeInfo(CmsSigner signer, Boolean silent) +190432 System.Security.Cryptography.Pkcs.SignedCms.Sign(CmsSigner signer, Boolean silent) +134 System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature(CmsSigner signer, Boolean silent) +345 System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature(CmsSigner signer) +6 Samples.CMS.DetachedSignature.SignMsg(Byte[] msg, X509Certificate2 signerCert) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\Detached\DetachedSignature.cs:304 Samples.CMS.DetachedSignature.MyDetachedSignature(String signerXml, String signerName, Byte[]& encodedSignature) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\Detached\DetachedSignature.cs:122 RosreestrLib.RosReestrLib.RCreateZipFile(String idSpecialist, String okato, String oktmo, Int32 requestType, String& requestType_, Byte[]& zipFile) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\RosreestrLib.cs:293 RosreestrLib.RosReestrLib.RCreateRequest(String idSpecialist, String okato, String oktmo, Int32 requestType, DateTime date) in M:\Projects\My\RosreestrService\RosreestrServicelLibrary\RosreestrLib.cs:447 RosreestrServiceWeb._Default.Button1_Click(Object sender, EventArgs e) in M:\Projects\My\RosreestrService\RosreestrServiceWeb\Default.aspx.cs:39 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
- разрешение на закрытый ключ сертификата дал полные права записям-LENOVO\IUSR_COMPUTER-E3CE73, Все.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Цитата:Не удается найти сертификат и закрытый ключ для расшифровки. сертификат установлен для "учетной записи компьютер" ? - разрешение на закрытый ключ сертификата дал полные права записям-LENOVO\IUSR_COMPUTER-E3CE73, Все.Каким образом? Подробнее... Отредактировано пользователем 31 мая 2012 г. 15:19:05(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.07.2011(UTC) Сообщений: 8 Откуда: Балашиха
|
Андрей * написал:Цитата:Не удается найти сертификат и закрытый ключ для расшифровки. сертификат установлен для "учетной записи компьютер" ? сертификат установлен для "учетной записи компьютер" и "учетной записи пользователь", а выбираю сертификат из "учетной записи компьютер". - разрешение на закрытый ключ сертификата дал полные права записям-LENOVO\IUSR_COMPUTER-E3CE73, Все.Каким образом? Подробнее... закрытый ключ сертификата находиться в реестре, щелкаю правой кнопкой на папке закрытого ключа сертификата в реестре - выбираю - Разрешения..., добавляю записи LENOVO\IUSR_COMPUTER-E3CE73, Все, даю им полные права.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.07.2011(UTC) Сообщений: 8 Откуда: Балашиха
|
Полный текст метода откуда вызывается функция -
static byte[] SignMsg( Byte[] msg, X509Certificate2 signerCert) { // Создаем объект ContentInfo по сообщению. // Это необходимо для создания объекта SignedCms. ContentInfo contentInfo = new ContentInfo(msg);
// Создаем объект SignedCms по только что созданному // объекту ContentInfo. // SubjectIdentifierType установлен по умолчанию в // IssuerAndSerialNumber. // Свойство Detached устанавливаем явно в true, таким // образом сообщение будет отделено от подписи. SignedCms signedCms = new SignedCms(contentInfo, true);
// Определяем подписывающего, объектом CmsSigner. CmsSigner cmsSigner = new CmsSigner(signerCert);
if (signerCert == null) throw new ArgumentNullException("signerCert");
if (!signerCert.HasPrivateKey) throw new java.lang.SecurityException("Exceptions.ValidationCertificateHasPrivateKey");
// Подписываем CMS/PKCS #7 сообение. Console.Write("Вычисляем подпись сообщения для субъекта " + "{0} ... ", signerCert.SubjectName.Name); signedCms.ComputeSignature(cmsSigner); Console.WriteLine("Успешно.");
// Кодируем CMS/PKCS #7 подпись сообщения. return signedCms.Encode(); }
модуль DetachedSignature из хелпа к шарпею.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close