在C#中validationDLL

我有一个使用Castle Windsor来实现插件机制的exe。 我需要validation我加载的插件来自我(并不是一些恶意代码)。

我相信我需要用非对称密钥(可能是SNK?)来签署exe和dll。 首先是正确的,我该怎么做? 其次,我如何在exe中以编程方式validationdll来自可靠来源?

如果您对DLL进行签名,那么在运行时,您可以在加载DLL之前检查DLL的StrongName

您还可以检查用于签名的公钥是否是您期望的公钥。

要获取程序集的公钥,您可以执行以下操作:

 Assembly assembly = ... AssemblyName assemblyName = assembly.GetName(); byte[] publicKey = assemblyName.GetPublicKey(); 

我刚刚检查过,StackOverflow上有一个很好的答案:

https://stackoverflow.com/a/1350012/106159