Метод SignedData.CoSign

[Метод CoSign доступен для использования в операционных системах, указанных в разделе Требования. Вместо этого используйте класс SignedCms в пространстве имен System.Security.Cryptography.Pkcs .]

Метод CoSign создает цифровую подпись для ранее подписанного содержимого.

Синтаксис

SignedData.CoSign( _
  [ ByVal Signer ], _
  [ ByVal EncodingType ] _
)

Параметры

Подписыватель [in, необязательный]

Ссылка на объект Signer подписывателя данных. Объект Signer должен иметь доступ к закрытому ключу сертификата, используемого для подписи. Этот параметр может иметь значение NULL; Дополнительные сведения см. в разделе Примечания.

EncodingType [in, необязательный]

Значение перечисления CAPICOM_ENCODING_TYPE , указывающее способ кодирования подписанных данных. Значение по умолчанию — CAPICOM_ENCODE_BASE64. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
CAPICOM_ENCODE_ANY
Этот тип кодирования используется только в том случае, если входные данные имеют неизвестный тип кодирования. Если это значение используется для указания типа кодирования выходных данных, вместо него будет использоваться CAPICOM_ENCODE_BASE64. Представлено в CAPICOM 2.0.
CAPICOM_ENCODE_BASE64
Данные сохраняются в виде строки в кодировке base64.
CAPICOM_ENCODE_BINARY
Данные сохраняются в виде чистой двоичной последовательности.

 

Возвращаемое значение

Этот метод возвращает строку, содержащую закодированные подписанные данные.

Если этот метод завершается сбоем, возникает ошибка. Объект Err будет содержать дополнительные сведения об ошибке.

Комментарии

Важно!

При вызове этого метода из веб-скрипта он должен использовать закрытый ключ для создания цифровой подписи. Разрешение ненадежным веб-сайтам использовать закрытый ключ представляет угрозу безопасности. При первом вызове этого метода появляется диалоговое окно с запросом на то, может ли веб-сайт использовать закрытый ключ. Если разрешить скрипту использовать закрытый ключ для создания цифровой подписи и выбрать "Больше не показывать это диалоговое окно", диалоговое окно больше не будет отображаться для сценариев в этом домене, который использует закрытый ключ для создания цифровой подписи. Однако скрипты за пределами этого домена, которые пытаются использовать закрытый ключ для создания цифровой подписи, по-прежнему будут вызывать это диалоговое окно. Если вы не разрешаете скрипту использовать закрытый ключ и выбираете "Больше не показывать это диалоговое окно", скриптам в этом домене будет автоматически отказано в использовании закрытого ключа для создания цифровых подписей.

 

Cosigners не гарантируется в каком-либо определенном порядке.

Следующие результаты относятся к значению параметра Signer :

  • Если параметр Signer не равен NULL, этот метод использует закрытый ключ, на который указывает связанный сертификат, для шифрования соподписи. Если закрытый ключ, на который указывает сертификат, недоступен, метод завершается ошибкой.
  • Если параметр Signer имеет значение NULL и в хранилище CURRENT_USER MY имеется только один сертификат, имеющий доступ к закрытому ключу, этот сертификат используется для создания соподписи.
  • Если параметр Signer имеет значение NULL, свойство Settings.EnablePromptForCertificateUI имеет значение true, а в хранилище CURRENT_USER MY имеется несколько сертификатов с доступным закрытым ключом, появится диалоговое окно, позволяющее пользователю выбрать используемый сертификат.
  • Если параметр Signer имеет значение NULL , а свойство Settings.EnablePromptForCertificateUI имеет значение false, метод завершается ошибкой.
  • Если параметр Signer имеет значение NULL и в хранилище CURRENT_USER MY нет сертификата с доступным закрытым ключом, метод завершается ошибкой.

Требования

Требование Значение
Распространяемые компоненты
CAPICOM 2.0 или более поздней версии в Windows Server 2003 и Windows XP
DLL
Capicom.dll

См. также раздел

Объекты шифрования

SignedData