.NET CLR何时评估安全属性?

时间:2009-08-30 14:51:10

标签: .net security attributes clr

我刚刚在关于方法调用的SecurityExceptions的CLI规范中阅读了以下内容:

当CIL转换为本机代码而不是运行时,可能会发生安全检查。

Microsoft的实现如何处理这个问题?

例如,如果只允许某个用户组访问某个类,并且我已为此组安排了安全属性检查。

如果用户运行应用程序,则会进行jitted,并且可能在那时执行安全检查,而不是在运行时。

如果是这样,抖动是否会缓存本机图像,以便在以后更改用户的组时可能会出现问题(即缓存的本机图像不会反映其更新的权限)?或者除非我预先安装原生图像,否则它每次运行时都会被jitted?我仍然不太确定原生图像缓存是如何工作的。

1 个答案:

答案 0 :(得分:2)

任何jitted图像仅在生成它的同一安全上下文中有效。

这适用于cache和ngen:ed程序集。

只要加载程序看到当前安全上下文不同,它就会加载IL映像并JIT组件。

这就是为什么你不能在你的电脑上生成图像并分发给其他人的原因。

这也适用于.Net核心程序集。它们在安装时是ngen:ed(或置于ngen队列中)以匹配计算机上的安全上下文。

您可以在此处详细了解: msdn ngen.exe

相关问题