Как программно подписать файл Excel в приложении С#C#

Место общения программистов C#
Ответить
Anonymous
 Как программно подписать файл Excel в приложении С#

Сообщение Anonymous »

У меня есть давно существующий код, который использует Microsoft.Office.Interop.Excel.Application для управления файлами Excel, а затем передает эти файлы клиентским браузерам в ответ на HTTP-запросы. Это программное обеспечение работает уже более десяти лет. Очень важно, чтобы мы доставляли файлы с макросами. Мы можем подписывать макросы, так что эта часть работает нормально. Однако из-за (очень уместного) ужесточения политики безопасности Microsoft по умолчанию эти макросы обычно не вызывают доверия и отключаются на принимающих клиентских компьютерах, если только не будут скорректированы некоторые сложные политики безопасности (что мои клиенты на самом деле не хотят делать) или если пользователь вручную разблокирует загружаемый файл перед открытием (что просто ужасно некрасиво).
Я считаю, что если бы я мог подписать файл Excel и передать его подписанным (не только макрос, заметьте, но весь файл) Я мог бы разрешить пользователям открывать файлы, просто ответив на предупреждение, что было бы приемлемо.
Однако у меня возникли проблемы с пониманием ни через взаимодействие, ни через взаимодействие. через библиотеку CryptoAPI как подписать файл. Мне просто нужно подписать программно, чтобы он был подписан так, как он был бы подписан, если бы вы в интерактивном режиме в Excel перешли к File->Info->Project Workbook->sign .
Я посмотрел для учебных пособий или примеров того, как это сделать, что, кажется, будет представлять довольно общий интерес, но я ничего не нашел. Есть ли помощь от StackOverflowers?
Чтобы внести ясность: мне известен метод Workbook.Signatures.AddNonVisibleSignature() (описанный здесь), но этот метод принимает объект, который представляет идентификатор поставщика подписи (не объяснен), и, кроме того, в документации говорится: «Чтобы предоставить точку входа для запуска этого метода, вам необходимо создать пользовательский интерфейс с надстройкой поставщика подписи. Эта точка входа обычно предоставляется для пользователя как опция меню». Мой код не контролируется, поэтому не может быть механизма, позволяющего пользователю ввести информацию о подписи. Мне нужно программно взаимодействовать с реальным сертификатом в моем хранилище сертификатов.

Подробнее здесь: https://stackoverflow.com/questions/787 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»