SignedData.CoSign 方法

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

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

注解

重要

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

 

不保证 Cosigners 按任何特定顺序排列。

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

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

要求

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

另请参阅

加密对象

SignedData