代码之家  ›  专栏  ›  技术社区  ›  Marks

c,mef-签署可信插件以减少滥用

  •  4
  • Marks  · 技术社区  · 16 年前

    我有一个程序,可以通过使用Microsoft扩展框架的插件进行扩展。 但我不希望不可信的消息源发出不安全的插件。 因此,我想对插件进行签名(可能使用Visual Studio的内置签名),并在程序启动时检查插件是否可信。

    我找不到从C_内部检查dll签名的方法。还有一个问题,我用directorycatalog加载插件。无法判断哪个插件来自哪个文件。有人知道怎么做吗?

    谢谢你的帮助, 标志

    1 回复  |  直到 16 年前
        1
  •  3
  •   Daniel Plaisted    15 年前

    您将无法使用DirectoryCatalog。您将需要根据程序集的签名是否正确来筛选这些程序集。您可以遍历目录中的文件,并调用 AssemblyName.GetAssemblyName 对于每一个。那么看看 KeyPair 属性来确定程序集是否使用您信任的密钥签名。如果是,则创建一个 AssemblyCatalog 对于该类并将其添加到 AggregateCatalog 你会把它送到集装箱里。

    下面是一篇博客文章,其中有一个如何做到这一点的示例: How To Control Who Can Write Extensions For Your MEF Application

    推荐文章