强命名程序集

  1. 弱命名程序集只能进行私有部署,不能进行全局部署,强名命程序集两者都可.
  2. 一个强名命程序集包含四个唯一标识程序集的特性:文件名(没有扩展名),版本号,语言文化标识,共有密钥标记(由共有密钥产生的一个值)
  3. 首先创建一个公钥/私钥对,然后将公有密钥和程序集相互关联.通过System.Reflection.AssemblyName类,可以很容易创建一个程序集名称,并获取一个程序集名称的各个部分.
  4. 使用SN.exe产生密钥 SN  -k MyCompany.keys   . MyCompany.keys文件将包含一对以二进制格式存储的公有密钥和私有密钥.
  5. 查看公钥方法: SN  -p Mycompany.keys Mycompany.Publickey     SN -tp Mycompany.Publickey
  6. 共有密钥标记是一个64位的共有密钥散列值
  7. [assembly:AssemblyKeyFile("MyCompany.keys")],当编译器在源代码中遇到此特性时,编译器将打开指定的文件(MyCompany.keys),用私有密钥对程序及进行签名,并将共有密钥嵌入到清单中.注意只能对包含清单的那个程序集文件进行签名,程序集的其它文件不能被显式的签名
  8. 向GAC(Global assembly Cache)中安装一个强命名程序集最常用的工具为GACUtil.exe,只能是强名命的程序集才能被放人GAC中
  9. 延迟签名允许我们只是使用公司的公有密钥就可以生成程序集合,不再需要私有密钥.他们将失去篡改保护功能,因为程序集文件没有经过散列转换.也没有在文件中嵌入数字签名.
posted @ 2007-02-12 17:44  smart-liu  阅读(221)  评论(0编辑  收藏  举报