繁体   English   中英

C#、MEF - 签署受信任的插件以减少滥用

[英]C#, MEF - Sign trusted plugins for abuse reduction

我有一个程序可以通过使用 Microsoft 可扩展性框架的插件进行扩展。 但我不希望不受信任的来源发布可能不安全的插件。 所以我想对插件进行签名(可能使用 Visual Studio 的内置签名)并在程序启动时检查插件是否值得信赖。

我没有找到从 C# 内部检查 DLL 签名的方法。 还有一个问题,我用 DirectoryCatalog 加载插件。 无法判断哪个插件来自哪个文件。 有人知道这样做的方法吗?

感谢您的帮助,马克

您将无法使用 DirectoryCatalog。 您需要根据程序集是否正确签名来自己过滤程序集。 您可以遍历目录中的文件,并为每个文件调用AssemblyName.GetAssemblyName 然后查看 AssemblyName 的KeyPair属性以确定程序集是否使用您信任的密钥进行签名。 如果是,则为该类创建一个AssemblyCatalog并将其添加到您将传递给容器的AggregateCatalog中。

这是一篇博客文章,其中包含如何执行此操作的示例: 如何控制谁可以为您的 MEF 应用程序编写扩展

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM