延迟签名的作用:
当我们打包强命名程序时,必须使用安全的私有密钥来为之签名。然而在开发和测试程序集时,允许访问安全的私有密钥可能会导致私钥泄漏。为在开发与测试环境中保证私钥安全,.Net推出了延迟签名技术,也叫局部签名。
延迟签名的步骤:
- 开发程序集时,首先取得仅包含公司公有密钥的文件,并将以下两个特性加入到AssemblyInfo.cs文件中://指定公有密钥文件名[assembly:AssemblyKeyFile("MyCompany.Publickey")]//指定延迟签名特性为true[assembly:AssemblyDelaySign("true")]
- 生成程序集后,执行以下命令以后便可将程序集安装到GAC中。注该操作只能执行一次,没有必要每次生成程序集时都执行一遍该命令。SN.exe -Vr MyAssembly.dll
- 当准备打包和部署程序集时,取得公司的完整密钥,执行以下命令:SN.exe -R MyAssembly.dll MyCompany.keys
- 执行下面的命令,恢复验证过程以进行测试:SN.exe -Vu MyAssembly.dll