SignedCode.Sign 方法

[ Sign 方法可用于“要求”部分中指定的操作系统。 请改用平台调用服务 (PInvoke) 调用 Win32 API SignerSignExSignerTimeStampExWinVerifyTrust 函数,以使用 Authenticode 数字签名对内容进行签名。 有关 PInvoke 的信息,请参阅 平台调用教程通过 P/Invoke 的 .NET 和 CryptoAPI:第 1 部分以及通过 P/Invoke 的 .NET 和 CryptoAPI:使用 CAPICOM 和 P/Invoke 扩展 .NET 加密的第 2 部分子节可能也很有用。]

Sign 方法创建 Authenticode 数字签名,并为 SignedCode.FileName 属性中指定的可执行文件签名。

语法

SignedCode.Sign( _
  [ ByVal Signer ] _
)

parameters

登录者 [in, 可选]

一个 Signer 对象,该对象有权访问用于对代码进行签名的证书的私钥。 默认值为 Null

返回值

此方法不返回值。

备注

在调用 Sign 方法之前,必须在 FileName 属性中指定包含代码的文件。

如果可执行文件已签名,此方法将覆盖现有签名。

以下结果适用于 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 存储中没有证书以及具有代码签名功能的可用私钥,则该方法将失败。

此方法使用 SHA-1 哈希算法。

要求

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