为什么私有程序集需要使用强名称?

3
我们生产了很多共享程序集的应用。由于内存或磁盘空间不是问题,我们使用私有程序集,将共享程序集复制到每个应用程序的本地文件夹中。这避免了将它们放入GAC所引起的问题。我听说如果我们在GAC中共享程序集,则需要强名称,那么是否有使用强名称进行私有程序集的好理由呢?
顺便说一下:这是一个关于程序集的绝佳参考:链接文本
3个回答

1

我应该指出,如果您直接移动文件,您将消除GAC为您提供的任何好处(最显著的是版本控制)。

对于不共享的私有程序集,强名称并不是非常重要。最多,它可以防止恶意(非管理员)用户用未经授权的版本替换您的程序集。但是,管理员可以禁用强名称验证,并相对容易地允许这种“攻击”。


0
如果你为程序集加入强名称,那么你也解决了一个安全问题。当你对程序集进行强命名时,你就不允许别人篡改你的程序集或用另一个替换它。

这并不是真的;人们可以篡改您的程序集和/或用另一个程序集替换它。当然,除非禁用了验证或修改了可执行文件以删除强链接要求,否则可执行文件在运行时不会链接。但是,如果您能够篡改程序集,那么很可能也能够篡改可执行文件。 - Barry Kelly

0
通常情况下,任何需要使用强名称的地方都是必须的,反之亦然。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接