如何设置Windows窗体应用程序的发布者名称

use*_*455 21 .net c# setup-deployment winforms

我已经创建了Windows窗体应用程序的设置.在Windows 7中安装此设置后,它显示如下内容:

Name: my application.exe  
Publisher: unknown publisher  
Type: application  
From: my application.exe  
Run Code Online (Sandbox Code Playgroud)

我想设置发布者名称.如何设置发布者名称?

Han*_*ood 21

您需要对输出代码进行数字签名.我可以通过使用Authenticode签名和检查代码的文章开始.

这样做的全部目的是保证您的代码没有被篡改.如果您从其中一个证书颁发机构购买代码签名证书,则可以阻止"您是否相信此"窗口出现.

这不是一个简单的设置任务,但它可以在脚本启动后立即执行.
你找不到一个简单,快速修复的答案.

这是最相关部分的剪切和粘贴.您可能需要进一步阅读以获得您想要的内容.


MakeCert

使用MakeCert测试程序生成测试X.509证书.MakeCert执行以下任务:

  1. 为数字签名创建公钥/私钥对,并将其与您选择的名称相关联.
  2. 将密钥对与您选择的发布者名称相关联.
  3. 创建由测试根密钥或您指定的密钥签名的X.509证书,该证书将您的名称绑定到密钥对的公共部分.证书将输出到文件,系统证书存储或两者.

MakeCert Internet Explorer 3.02 UPD示例

以下是使用Microsoft Internet Explorer 3.02 UPD选项创建证书的示例:

MakeCert -k:c:\KeyStore\MyKey.pvk -n:CN=MySoftwareCompany Cert.cer
Run Code Online (Sandbox Code Playgroud)

在此示例中,将创建名为Cert.cer的证书文件.名为MyKey的密钥对的公共部分绑定到发布者MySoftwareCompany.

Cert2SPC

生成证书后,可以使用Cert2SPC程序创建软件发布证书.该程序将多个X.509证书包装到PKCS#7签名数据对象中.请注意,此程序仅用于测试目的.从证书颁发机构获取有效的软件发布证书.这是一个例子:

Cert2SPC MyCert.cer MyCert.spc
Run Code Online (Sandbox Code Playgroud)

这种包装的X.509证书,MyCert.cerPKCS#7的软件发行证书称为MyCert.spc.

SignCode

最后一步是使用SignCode程序实际签名文件.该计划将:

  1. 创建文件的加密摘要.
  2. 使用您的私钥对摘要进行签名.
  3. X.509证书软件发布证书复制到新的PKCS#7签名数据对象中.该PKCS#7对象包含的序列号和用于创建签名的认证证书的发行人,以及签署摘要信息.
  4. 将对象嵌入文件中.
  5. (可选)它可以为文件添加时间戳.签名文件时应始终添加时间戳.但是,SignCode还能够为以前签名的文件添加时间戳,但有一些限制(请参阅选项表后面的示例).

文件签名后(假设您拥有有效的证书)并加盖时间戳,该文件可以分发给您的客户.请注意,使用测试程序MakeCert和Cert2SPC生成的证书对于将分发给公众的代码无效.独立软件供应商必须从GTE,VeriSign Inc.或其他证书颁发机构获取证书,以签署将分发给公众的代码.

Internet Explorer 3.02 UPD的SignCode示例

以下是如何使用Microsoft Internet Explorer 3.02 UPD选项对文件进行签名和时间戳的两个示例.第一个使用私钥名称MyKey,第二个使用私钥文件My.pvk:

SignCode -prog MyControl.exe -spc Cert.spc -pvk MyKey -timeStamper http://timestamp.verisign.com/scripts/timstamp.dll
SignCode -prog MyControl.exe -spc Cert.spc -pvk My.pvk -timeStamper http://timestamp.verisign.com/scripts/timstamp.dll
Run Code Online (Sandbox Code Playgroud)

注意在上面的URL中,timstamp.dll是正确的.这不是印刷错误.

在这两种情况下,PKCS#7对象Cert.spc都嵌入到文件的摘要MyControl.exe中.在第一个示例中,使用MyKey密钥对的私钥对摘要进行签名,并添加时间戳.在第二个示例中,使用私钥文件My.pvk对摘要进行签名,并添加时间戳.

  • 您可以在组织内部使用它以确保安全的内容.如果您在每台计算机上安装它,Windows将信任使用该证书签名的所有代码,文档和电子邮件.它还将识别欺诈性物品,因为它们不会被签署. (2认同)