【问题标题】:How many .snk files do I need?我需要多少个 .snk 文件?
【发布时间】:2009-04-28 13:50:15
【问题描述】:

假设我有几个 .NET 程序集,并且想用一个强名称对每个程序集进行签名。一个密钥对(一个 .snk 文件)是否足够,还是我需要为每个程序集生成一对?我是否必须发布(每个)密钥对的公钥?

【问题讨论】:

    标签: .net strongname


    【解决方案1】:

    您只需要一个 .snk 文件。

    您不需要公开公钥。任何人都可以使用带有 -p 开关的 sn.exe 获取公钥。

    【讨论】:

    • 但他如何确保发布程序集的是我?
    • 它使用您的密钥签名这一事实——引用程序集所期望的密钥相同——向程序集加载器验证它。
    • 这仅证明它使用与组件随附的密钥相同的密钥进行签名。但是如何确定是谁生成了该密钥?
    • 为此提出了一个单独的问题 - stackoverflow.com/questions/798621/…
    【解决方案2】:

    一个密钥文件足以签署多个相关程序集。看看你的 GAC。来自同一产品或平台的程序集通常都具有相同的密钥。例如,许多 Microsoft 的 .NET 框架程序集共享相同的密钥。

    【讨论】:

    • 一个密钥对足够整个公司使用吗?
    【解决方案3】:

    我们有 (3) 个 .snk 文件。

    一个我们用来签署我们的程序集,一个用于现场代码生成(我们不再需要这样做),mono.snk 用于签署 Mono.Cecil 和 Mono.Security(这些是此处构建用于与 Microsoft 的 .NET 一起使用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 2012-01-22
      • 2016-11-29
      • 1970-01-01
      • 2016-07-28
      • 2023-03-25
      • 2023-04-01
      相关资源
      最近更新 更多