【发布时间】:2011-12-05 00:13:37
【问题描述】:
我正在开发一个基于 ASP.Net MVC/MEF 的项目。
是否可以构建目录以使添加到应用程序的 DLL 使用已知签名者获得批准?我们不想加载任何符合要求的旧插件 - 只是那些已被批准的插件(批准插件意味着它使用已知密钥签名)。
杰夫
【问题讨论】:
标签: asp.net-mvc plugins mef digital-signature
我正在开发一个基于 ASP.Net MVC/MEF 的项目。
是否可以构建目录以使添加到应用程序的 DLL 使用已知签名者获得批准?我们不想加载任何符合要求的旧插件 - 只是那些已被批准的插件(批准插件意味着它使用已知密钥签名)。
杰夫
【问题讨论】:
标签: asp.net-mvc plugins mef digital-signature
在初始化 MEF 目录之前,您需要执行这样的过滤。即,如果您使用的是AssemblyCatalog:
var assemblies = // all assemblies
var catalog = new AggregateCatalog(
assemblies
.Where(a => IsAcceptable(a))
.Select(a => new AssemblyCatalog(a))
);
您需要提供IsAcceptable 方法来执行适当的程序集过滤:
bool IsAcceptable(Assembly a) { ... }
【讨论】:
var c = X509Certificate.CreateFromSignedFile(assemblyFile);
if (c.Issuer = "Joe") ...
只是一个想法,没有尝试过 :) 让我们知道它是否有效..
【讨论】: