1.从将执行最终签名的单位获取密钥的公钥部分。通常为.snk文件的形式,使用SDK即可创建
例如: sn -k keyFile.snk
2.使用System.Reflection中批准程序集的源代码:
assemblyKeyFileAttribute
将公钥的文件作为参数传递至其构造函数
assembleDelaysignAttribute
通过True作为参数传递至其构造函数
3.将编译器的公钥插入程序集的清单。并在PE文件中为完整的强名称保留空间。真正的公钥必须在生成程序集是存储,以便引用此程序及的其他程序集可以获取密钥以存储在它们自己的程序集引用中。
4.由于程序集没有有效的强名称的签名,所以必须关闭该签名的验证。
例如:关闭程序集的验证
sn -vr XXXX.dll
5.最后,在即将交付前,将程序集提前交给组织签名的机构。以便于强名称工具一起使用来实际进行强名称签名
例如:
sn - p XXXX.dll XXX.snk
本文介绍了一个详细的步骤来为.NET程序集创建并应用强名称签名,包括获取公钥、使用System.Reflection进行签名准备、插入公钥到程序集清单、关闭签名验证以及最终交付前的签名过程。
216

被折叠的 条评论
为什么被折叠?



