.net - 签署 .NET 程序集的最佳实践?

标签 .net assemblies signing

我有一个由五个项目组成的解决方案,每个项目都编译成单独的程序集。现在我正在对它们进行代码签名,但我很确定我做错了。这里的最佳做法是什么?

  • 用不同的 key 对每个签名;确保密码不同
  • 用不同的 key 对每个签名;如果需要,请使用相同的密码
  • 用相同的 key 对每个签名
  • 完全是别的东西

基本上我不太确定“签名”对他们有什么影响,或者这里的最佳实践是什么,所以更广泛的讨论会很好。我真正知道的是 FxCop对我大吼大叫,通过单击“签署此程序集”复选框并使用 Visual Studio (2008) 生成 .pfx 文件很容易修复。

最佳答案

如果您的唯一目标是阻止 FxCop 对您大吼大叫,那么您已经找到了最佳做法。

签署程序集的最佳做法完全取决于您的目标和需求。我们需要更多信息,例如您的预期部署:

  • 供个人使用
  • 在企业网络 PC 上用作客户端应用程序
  • 在网络服务器上运行
  • 在 SQL Server 中运行
  • 通过互联网下载
  • 以收缩包装的 CD 形式出售
  • 直接上传到控制论大脑

通常,您使用代码签名来验证程序集是否来自特定的可信来源并且未被修改。 所以每个人都拥有相同的 key 就可以了。现在如何确定信任和身份是另一回事了。

更新:如果您已获得 software signing certificate from a certificate authority,那么当您通过 Web 进行部署时,这对您的最终用户有何好处? .然后,当他们下载您的程序集时,他们可以验证它们来自 Domenic 的软件商场,并且它们在下载过程中没有被修改或损坏。下载安装程序时,您还需要对其进行签名。这可以防止某些浏览器显示它是从未知来源获得的警告。

请注意,您需要为软件签名证书付费。您得到的是证书颁发机构成为受信任的第 3 方,可以验证您的真实身份。这是有效的,因为信任网络可以追溯到安装在其操作系统中的根证书。有几个证书颁发机构可供选择,但您需要确保目标操作系统上的根证书支持它们。

关于.net - 签署 .NET 程序集的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1267508/

相关文章:

c# - 允许用户在 iPhone 上加载历史记录的最佳方式是什么?

c# - 嵌套 while 循环替代方案

c# - 如何从程序集中只公开一个特定的类?

ios - 用于开发配置文件的通配符应用程序 ID/"No Code Signing Identity Found"

.net - Team Foundation Explorer - 首次 checkin

java - VB6现状/原生编译最佳桌面应用语言

inheritance - Mono.Cecil:从其他程序集调用基类的方法

c# - 程序集Microsoft.VC90.CRT问题

email - SSL 签名如何以及在何处应用于电子邮件?

binary - 应用提交错误 - 无效的二进制文件 - 无效的代码签名错误