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 参数为 NULL 且 Settings.EnablePromptForCertificateUI 属性为 false,则该方法将失败。
- 如果 Signer 参数为 NULL ,并且 my 存储CURRENT_USER中没有可用私钥的证书,则该方法将失败。
要求
要求 | 值 |
---|---|
可再发行组件 |
Windows Server 2003 和 Windows XP 上的 CAPICOM 2.0 或更高版本 |
DLL |
|
另请参阅