2009-10-22 48 views
16

在visual studio项目设置中,您可以选择强大的名称密钥文件来签署程序集。当创建一个新的,你可以选择使用密码保护它。你应该什么时候这样做?你什么时候不应该?什么时候应该使用密码保护强名密钥文件?

我认为它可能不是那么聪明,如果该项目是一个开源项目Codeplex或类似的托管密码保护它。还是应该保护它?如果密钥文件受到保护,人们将无法下载源代码并进行编译?或者,这究竟是如何工作的?

回答

12

一般来说,如果您不信任有权访问的人,您应该使用密码保护它。任何有权访问密钥文件的人都可以使用强名称创建程序集(与authenticode不同,他们不是冒充你,但他们可以让他们的程序集加载而不是你的程序集)

至于你描述的开源场景,人们总是可以编译代码 - 它们只是创建一个新的密钥文件,但是它们创建的程序集将不会被试图加载程序集的程序集加载。

+2

哦。所以,如果我有两个使用强名称键签名的程序集。如果我然后添加一个引用到另一个引用,它将只适用于用右键签名的引用? – Svish 2009-10-22 12:08:53

+2

如果你引用一个强大的名字大会,它不能在运行时用一个不同的密钥签名的大会(不完全正确,但现在让我们离开更高级的东西) – 2009-10-22 13:25:28

+0

并在*运行时*你的意思是当应用程序运行时,而不是运行时,对吧? (只是为了确保我不会误解:p) – Svish 2009-10-22 13:48:01