SignedData.CoSign 方法

[ CoSign 方法可用于“要求”部分中指定的操作系统。 请改用 System.Security.Cryptography.Pkcs 命名空间中的 SignedCms 类。]

CoSign 方法针对以前签名的内容创建数字签名

语法

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

parameters

登录者 [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 对象将包含有关错误的其他信息。

备注

重要

从 Web 脚本调用此方法时,脚本需要使用 私钥 创建数字签名。 允许不受信任的网站使用私钥存在安全风险。 首次调用此方法时,将显示一个对话框,询问网站是否可以使用私钥。 如果允许脚本使用私钥创建数字签名并选择“不再显示此对话框”,则该域中使用该私钥创建数字签名的任何脚本将不再显示该对话框。 但是,该域外部尝试使用私钥创建数字签名的脚本仍会导致显示此对话框。 如果不允许脚本使用私钥并选择“不再显示此对话框”,则会自动拒绝该域中的脚本使用私钥创建数字签名。

 

不保证共同签名者采用任何特定顺序。

以下结果适用于 Signer 参数值:

  • 如果 Signer 参数不为 NULL,此方法使用关联证书指向的私钥来加密共同签名。 如果证书指向的私钥不可用,该方法将失败。
  • 如果 Signer 参数为 NULL ,并且CURRENT_USER MY 存储中恰好有一个证书有权访问私钥,则该证书用于创建共同签名。
  • 如果 Signer 参数为 NULL则 Settings.EnablePromptForCertificateUI 属性值为 true,并且 CURRENT_USER MY 存储中有多个证书具有可用私钥,将显示一个对话框,允许用户选择所使用的证书。
  • 如果 Signer 参数为 NULLSettings.EnablePromptForCertificateUI 属性为 false,则该方法将失败。
  • 如果 Signer 参数为 NULL ,并且 my 存储CURRENT_USER中没有可用私钥的证书,则该方法将失败。

要求

要求
可再发行组件
Windows Server 2003 和 Windows XP 上的 CAPICOM 2.0 或更高版本
DLL
Capicom.dll

另请参阅

加密对象

SignedData